苦比的学生求助一组作业题...
还有三周考试,c语言学得不是很好,发帖上来看看大家给出的例子。希望高手多帮帮忙....
1. 【问题描述】
从键盘依次输入n和n个学生的学号、姓名以及 4 门课程的成绩,计算每个学生的总分和平均成绩绩点,按总分排出名次,相同的总分名次也相同,然后按原来的顺序输出这 n个学生包括名次、总分和平均绩点在内的全部信息,每个学生一行。其他要求和说明如下:
⑴ 存放学生信息的结构体类型为:
struct student
{ char num[5]; /* 学号,4位数字 */
char name[16]; /* 姓名,少于16个字符 */
int score[4]; /* 4门课程的成绩 */
int ts; /* 成绩总分 */
float sgpa; /* 平均绩点 */
};
⑵ 成绩绩点的计算规则:
成绩
绩点
100~90
4.0
85~89
3.7
82~84
3.3
78~81
3.0
75~77
2.7
72~74
2.3
68~71
2.0
66~67
1.7
64~65
1.5
60~63
1.0
【输入形式】
依次输入n和n个学生的学号、姓名以及4门课程的成绩。
【输出形式】
输出这n个学生包括名次、总分和绩点在内的全部信息,每个学生一行, 内容与格式如下:
名次□学号□姓名□成绩□成绩□成绩□成绩□总分□绩点
(%2d□%4s□%-15s□%3d□%3d□%3d□%3d□%3d□%4.2f)
其中□表示空格。
【样例输入】
5
0901 Mickey 90 91 77 80
0902 Donald 96 71 72 63
0903 Tom 100 64 74 86
0904 Simba 87 88 81 83
0905 Jerry 98 80 65 81
【样例输出】
2 0901 Mickey 90 91 77 80 338 3.42
5 0902 Donald 96 71 72 63 302 2.33
3 0903 Tom 100 64 74 86 324 2.88
1 0904 Simba 87 88 81 83 339 3.42
3 0905 Jerry 98 80 65 81 324 2.88
【评分标准】
结果完全正确得20分,共1个测试点。
2.
【问题描述】
编程计算并输出两个带分数的差。带分数就是由一个整数和一个真分数合成的数。
要求如下:
⑴ 定义存放分数的结构体类型,名为分数 fs:
成员:zs(整数)、fz(分子)、fm(分母)
变量:fs1(分数1)、fs2(分数2)
⑵ 两个带分数(前者大于等于后者,它们的整数、分子、分母均大于0 )从键盘输入,格式为:
整数1[分子1/分母1],整数2[分子2/分母2]
⑶ 编写函数frac_sub( ),其功能是计算、化简并返回两个带分数的差。
⑷ 差要求化简,整个输出样式为(如差为整数,则无分数部分;如整数部分为0,则无整数部分):
整数1[分子1/分母1]-整数2[分子2/分母2]=整数[分子/分母]
【输入形式】
输入两个带分数(前者大于等于后者,它们的整数、分子、分母均大于0),格式为:
整数1[分子1/分母1],整数2[分子2/分母2]
【输出形式】
输出两个带分数的差式,格式为(如差为整数,则无分数部分;如整数部分为0,则无整数部分):
整数1[分子1/分母1]-整数2[分子2/分母2]=整数[分子/分母]
【样例输入1】
12[6/35],8[3/5]
【样例输出1】
12[6/35]-8[3/5]=3[4/7]
【样例输入2】
6[2/3],4[12/18]
【样例输出2】
6[2/3]-4[12/18]=2
【样例输入3】
9[7/8],9[3/8]
【样例输出3】
9[7/8]-9[3/8]=[1/2]
【评分标准】
结果完全正确得20分,共4个测试点。
3. 【问题描述】
从键盘输入年份y和月份m,按举例格式输出该月的月历。已知计算y年12月31日是星期几的C表达式为(0表示星期日): (y+y/4-y/100+y/400)%7。
【输入形式】
从键盘输入年份y和月份m,两者间用空格间隔。
【输出形式】
按样例格式输出显示y年m月的月历。
【样例输入】
2012 5
【样例输出】
[2012-05]
Sun Mon Tue Wed Thu Fri Sat
---------------------------
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
---------------------------
【样例说明】
月历横宽27列;
第1行的“[2012-05]”位置居中,年占4列,月占2列,之间为一减号;
第2行的星期之间用1个空格间隔;
第3行和末行各由27个减号构成;
中间的各日期与对应的星期右侧对齐。
【评分标准】
结果完全正确得20分,共4个测试点。
4. 【问题描述】
当前目录下的文本文件 filein.txt 中存有不多于 100 个用空格间隔的整数。请编程,先从该文件中依次读入这些整数,再从键盘输入整数 k,然后将这些数循环移动 k个位置后显示在屏幕上并写入到文本文件fileout.txt中,各数间用逗号分隔,若k>0,则右移,若k<0,则左移,若k等于0,则不移。
【输入形式】
先读取当前目录下的文本文件filein.txt 中用空格间隔的全部整数(不多于 100 个),再从键盘输入整数k。
【输出形式】
将从文件读取的整数循环移动 k个位置后显示在屏幕上,并写入到文本文件fileout.txt中,各数之间用逗号分隔。
【样例输入】
fielin.txt 文件的内容为:
5 3 5 6 1 7 7 4 10 2
从键盘输入:3
【样例输出】
屏幕显示输出:
4,10,2,5,3,5,6,1,7,7
fielout.txt 文件的内容为:
4,10,2,5,3,5,6,1,7,7
提示:
设已定义:int n, a[100]; FILE *fp; ,从已用fp以读
方式打开的文本文件中读取未知个数的整数可用
下列语句,完成后,n为读取整数的个数:
for(n=0; fscanf(fp,"%d", &a[n])!=EOF; n++);
【评分标准】
结果完全正确得20分,共4个测试点。
5. 【问题描述】
从键盘上输入n(1<n<21),按样例格式打印n行由字符 * 构成的W形图案。
【输入形式】
从键盘输入整数n (1<n<21)。
【输出形式】
输出用字符 * 构成的W形图案,样式按下面的样例,第1行的起始字符位于第1列。
4
【样例输出】
*□□□□□*□□□□□*↙
□*□□□*□*□□□*↙
□□*□*□□□*□*↙
□□□*□□□□□*↙
(其中:□表示空格,↙表示回车)
【评分标准】
结果完全正确得20分,共2个测试点。
[解决办法]
作业题要自己做,有问题可以把代码发上来让大家看一下问题在那里
[解决办法]
做作业是要给钱的
[解决办法]
过来BS一下发作业贴的。LZ,还是自己看书吧,这些例子都很EASY,看书绝对能搞定,并且,这里也不让发作业贴的。