1. 猜数字游戏
题目:随机产生一个3位的正整数,猜数字。如果猜小了,输出“猜小了,请继续”。如果猜大了,输出“猜大了,请继续”。如果猜对了,输出“恭喜你,猜对了”。
最多只能猜10次,如果猜了10次还没猜对,就退出程序,输出:“Bye Bye”。
2. 字符串提取数字并求和
编写函数 FindAndSum, 输入一个字符串,把字符串中的数字作为整数进行求和,并输出结果。
输入样例:
There are some apple.
输出样例:
0
输入样例:
124and 1524
输出样例:
1648
3.文件操作
有一个文件 student.txt,文件当中包括一组学生的信息,包括名字、学号、英语成绩、语文成绩、数学成绩、科学成绩。
从这个文件当中读入学生的信息,然后按照 总成绩 从高到低 进行排序 并输出学生
student.txt
gengsj 1528140524 99 98 97 96
gaoxh 1528140520 88 77 66 55
niujw 1333434343 88 99 33 44
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
// 学生结构体
struct Student {
char name[20];
char id[15];
int eng, chn, math, science;
}stu[110];
// 排序函数,总成绩 从大到小
bool cmp(Student a, Student b) {
int suma = a.eng + a.chn + a.math + a.science;
int sumb = a.eng + a.chn + a.math + a.science;
return suma > sumb;
}
int main() {
char str[20]; // 表头
FILE *fp; // 文件指针
//打开文件失败
if ((fp = fopen("student.txt", "r")) == NULL) {
printf("error\n");
exit(EXIT_FAILURE);
}
//读取表头并输出
for (int i = 0; i < 6; i++) {
fscanf(fp, "%s", &str);
printf("%s ", str);
}
printf("\n");
// 读取每行元素并 录入到结构体数组stu中
int i = 0;
while (fscanf(fp, "%s", &stu[i].name) != EOF) {
fscanf(fp, "%s", &stu[i].id);
fscanf(fp, "%d", &stu[i].eng);
fscanf(fp, "%d", &stu[i].chn);
fscanf(fp, "%d", &stu[i].math);
fscanf(fp, "%d", &stu[i].science);
i++;
}
// 排序
sort(stu, stu + i, cmp);
// 输出
for (int j = 0; j < i; j++) {
printf("%s %s %d %d %d %d\n", stu[j].name, stu[j].id, stu[j].eng, stu[j].chn, stu[j].math, stu[j].science);
}
}