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);
}
}
}