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