29.【算法五章-----03(未完毕)】

简介: 29.【算法五章-----03(未完毕)】

1.求排名的信息(结构体方法)

在某个班的一次考试中,n(n<10)个学生的考试成绩都不相同,现知道了每个学生的学号和成绩,

求考第k名学生的学号和成绩。

输入

3(班级共n名学生)

200901 86

200902 89

200903 87

2(第k名学生)

输出

200902 89

代码展示:

#include <iostream>
#include <windows.h>
using namespace std;
struct information
{
    int numer;
    double  score;
}s[10];
int main()
{
    int m;
    cout << "请输入几名同学:" << endl;
    cin >> m;
    for (int i = 0; i < m; i++)
    {
        cout << "请输入第" << i + 1 << "名的学号、成绩" << endl;
        cin >> s[i].numer >> s[i].score;
    }
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < m - 1 - i; j++)
        {
            if (s[j].score>s[j+1].score)
            {
                double t;
                t = s[j].score;
                s[j].score = s[j + 1].score;
                s[j + 1].score = t;
            }
            int t;    
        }
    }
    int n;
    cout << "请输入你要查询第几名" << endl;
    cin >> n;
    cout << s[n-1].numer <<"  "<< s[n - 1].score << endl;
}

2. 评委打分,求最佳的值

题目描述:

在某班举行的辩论赛中,要选出最佳辩手。有3名选手参加辩论赛,有5个评委对所有选手进行打分。选手得分规则是去掉一个最高分,去掉一个最低分,然后计算平均分。

(1)请编程输出每个选手的得分;

(2)请编程输出第几位选手是最佳辩手。

代码展示:

#include <stdio.h> 
double show(int n)
{
    int i, j, a[20], sum = 0;
    double aver;
    printf("第%d名学生得分情况:\n\n\n",n);
    for (i = 0; i < 5; i++)
    {
        printf("\t第%d名评委给分情况:\n", i+1);
        scanf_s("%d", &a[i]);
    }
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 4 - i; j++)
        {
            if (a[j] > a[j + 1])
            {
                double t;
                t = a[j];
                a[j] = a[j + 1];
                a[j + 1] = t;
            }
        }
    }
    for (i = 0; i < 5; i++)
    {
        sum += a[i];
    }
    aver = (sum - a[0] - a[4]) / (double)3;
    return aver;
}
int main()
{
    double sum1, sum2, sum3;
    sum1 = show(1);
    sum2 = show(2);
    sum3 = show(3);
    if (sum1 > sum2 && sum1 > sum3)
        printf("\t最佳选手为1号成绩是:\n%f", sum1);
    if (sum2 > sum1 && sum2 > sum3)
        printf("\t最佳选手为2号成绩是:\n%f", sum2);
    if (sum3 > sum2 && sum3 > sum1)
        printf("\t最佳选手为3号成绩是:\n%f", sum3);
    return 0;
}

3.前n个字符和后n个字符颠倒顺序

代码展示:
#include <iostream>
#include <iostream>
using namespace std;
int main()
{
    char s, s2;
    int m, j = 0;
    string s1;
    cout << "请输入一个数据:" << endl;
    cin >> s1;
    cout << "请输入m个位置:" << endl;
    cin >> m;
    for (int i = 0; i < m; i++)          //为了交换前m个和后m个  eg: abcdef   2   会得到  fecdba
    {
        j--;
        s = s1[i];
        s1[i] = s1[s1.length() + j];
        s1[s1.length() + j] = s;
    }
    int k, o = 0;
    for (k = s1.length() - m; k < s1.length(); k++)         //目的是为了把ba的位置换成ab
    {
        o--;
        s2 = s1[k];
        s1[k] = s1[s1.length() + o];
        s1[s1.length() +o] = s2;
    }
    for (int i = 0; i < s1.length() - m; i++)                  //输出ab  前面的
    {
        cout << s1[i] << " ";
    }
    for (k = s1.length() - m; k < s1.length(); k++)           //输出ab
    {
        cout << s1[k] << " ";
    }
}

4.求范围内的素数:

方法调用的方法.

代码展示:
package test;  //  包名
import java.util.Scanner;
public class test1 {     //项目名
  static int count=0;
  public static void change(int number)
  {
    boolean flag=true;
    for(int i=2;i<number/2;i++)
    {
      if(number%i==0)   //如果不是素数
      {
        flag=false;
        break;
      }
    }
    if(flag)
    {
      ++count;
      System.out.println(number+" "+count);
    }
  }
  public static void main(String []avgs)
  {
    for(int i=101;i<200;i++)
    {
      change(i);
    }
  } 
}


相关文章
|
4月前
|
SQL 前端开发
大事件后端项目24-----更新文章分类
大事件后端项目24-----更新文章分类
|
5月前
|
关系型数据库 MySQL 测试技术
当update修改数据与原数据相同时会再次执行吗
当update修改数据与原数据相同时会再次执行吗
46 1
|
JSON 小程序 数据格式
小程序----页面事件(二)
小程序----页面事件(二)
|
5月前
|
Windows
Win10彻底关闭更新的三步操作
Win10彻底关闭更新的三步操作
42 0
|
C语言 C++
【C++】 --- 写个函数在main函数执行前先运行
【C++】 --- 写个函数在main函数执行前先运行
134 0
|
小程序
小程序----全局配置(二)
小程序----全局配置(二)
|
JSON 小程序 JavaScript
|
JSON 小程序 数据格式
小程序----页面配置
小程序----页面配置
|
安全 NoSQL Java
28个案例问题分析---15---登陆之后我加入的课程调用接口报错--ArrayList线程不安全。占用内存情况
28个案例问题分析---15---登陆之后我加入的课程调用接口报错--ArrayList线程不安全。占用内存情况
80 0