当前编程题:14级第八次作业---统计整数
1.【问题描述】
输入若干个整数,统计出现次数最多的那个整数。如果出现最多的整数有两个以上,打印最早输入的那个整数。
【输入形式】
从标准输入读取输入。第一行只有一个数字N(1≤N≤10000),代表整数的个数。以后的
N行每行有一个整数。
【输出形式】
向标准输出打印出现次数最多的那个数字。
【输入样例】
6
11
-1
20
300
【输出样例】
【样例说明】
输入6个整数,其中出现次数最多的是0,共出现两次。
【评分标准】
本题不准使用数学库函数。运行时限1秒,正确得20分,每个测试点4分,提交程序名为count.c。
2.【问题描述】
从键盘中读入最多不超过50个学生的学生信息(包括空格隔开的姓名、学号、年龄信息,以学号从低到高排序)
【输入形式】
每次键盘读入最多不超过50个学生的学生信息:
第一行为学生人数;
后面每一行为空格隔开的学生学号、姓名、年龄,其中学号和年龄都是整数。
【输出形式】
分别以姓名顺序(从低到高)和年龄顺序(从低到高)将学生信息输出,每行输出一位学生的信息,其中学号占3位,姓名(英文)占6位,年龄占3位,均为右对齐。年龄相同时按姓名从低到高排序。两种顺序的输出结果用一行空行相隔。
【输入样例】
4
1 aaa 22
45 bbb 23
54 ddd 20
110 ccc 19
【输出样例】
1    aaa    22
45    bbb    23
110    ccc    19
54    ddd    20
110    ccc    19
54    ddd    20
1    aaa    22
45    bbb    23
【样例说明】
从键盘输入四个学生记录,分别按姓名和年龄排序并输出。
【评分标准】
分别以姓名顺序和年龄顺序输出学生信息,完全正确得20分,每个测试点4分,提交程序名为students.c。c语言下载什么
3.【问题描述】编写一个程序,输入N个用户的姓名和电话号码,按照用户姓名的词典顺序排列输
出用户的姓名和电话号码。
【输入形式】用户首先在第一行输入一个正整数,该正整数表示待排序的用户数目,然后在下面多行输入多个用户的信息,每行的输入格式为:姓名电话。以回车结束每个用户的输入。
【输出形式】程序输出排序后的结果。每行的输出结果格式也是:姓名电话。姓名和电话字段中间没有空格,要求用户姓名不能超过10个字符,超出10个字符时候只取前10个字符作为姓名。电话号码不能超过10位,超过10位时只按10位处理。输出姓名、电话字段各占12个字符宽,输出格式采用默认对齐方式。另外,用户的数量要求不超过50个。
【样例输入】
3
amethystic 1234567
amethyst 654321
wangwei 7645434
【样例输出】
####amethyst>#654321
##amethystic>1234567
>wangwei>7645434
【样例说明】程序根据用户姓名的词典顺序排序,最后按照姓名#电话的格式输出。另外,由于规定姓名和电话之间用空格分割,所以输入姓名时请将姓和名一起输入,中间不要有空格。另外输出时候程序将自动补齐12字符宽。程序输出结尾有个回车符。
【评分标准】完全正确为20分,每个测试点4分。提交程序文件名为telsort.c
4.【问题描述】要从n只猴子中选出一位大王。它们决定使用下面的方法:
n只猴子围成一圈,从1到n顺序编号。从第q只猴子开始,从1到m报数,凡报到m的猴子退出竞选,下一次又从退出的那只猴子的下一只开始从1到m报数,直至剩下的最后一只为大王。
请问最后哪只猴子被选为大王。
【输入形式】控制台输入三个整数n,m,q。
【输出形式】输出最后选为大王的猴子编号。
【样例输入】
7  4  3
【样例输出】
4
【样例说明】输入整数n =7,m =4,n =3,输出4
【评分标准】本题要求输出最后被选为大王的猴子编号,完全正确得20分,每个测试点4分。
上传C语言文件名为monkey.c。
5.【问题描述】
编写一个程序实现两个一元多项式相乘。
【输入形式】
首先输入第一个多项式中系数不为0的项的系数和指数,以一个空格分隔。且该多项式中各项的系数均为0或正整数,系数和最高幂次不会超过int类型的表示范围。对于多项式anxn +a n-1 x n-1 + … + a1x1 + a0x0 的输入方法如下:
an  n  a n-1  n-1 …  a1  1  a0  0
即相邻两个整数分别表示表达式中一项的系数和指数。在输入中只出现系数不为0的项。最后一项的指数后没有空格,只有一个回车换行符。
按照上述方式再输入第二个多项式。
【输出形式】
将运算结果输出到屏幕。将系数不为0的项按指数从高到低的顺序输出,每次输出其系数和指数,均以一个空格分隔,最后一项的指数后也可以有一个空格。
【样例输入】
10 80000 2 6000 7 300 5 10 18 0
3 6000 5 20 8 10 6 0
【样例输出】
30 86000 50 80020 80 80010 60 80000 6 12000 21 6300 10 6020 31 6010 66 6000 35 320 56
310 42 300 25 30 130 20 174 10 108 0
【样例说明】
输入的两行分别代表如下表达式:
10x80000 + 2x6000 + 7x300 + 5x10 + 18
3x6000 + 5x20 + 8x10 + 6
相乘结果为:
30x86000 + 50x80020 + 80x80010 + 60x80000 + 6x12000 + 21x6300 + 10x6020 + 31x6010 + 66x6000 + 35x320 + 56x310 + 42x300 + 25x30 + 130x20 + 174x10 + 108
提示:利用链表存储多项式的系数和指数。
【评分标准】
该题要求输出相乘后多项式中系数不为0的系数和指数,共有5个测试点。上传C语言文件名为multi.c。
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char *argv[])
{
int i,line=1,n=0,k=0;
char a[500],ch;
FILE *in;
if(argc==2)
n=10;
else
for(i=1;argv[1][i]!='\0'; i++)
n=n*10+argv[1][i]-'0';
in=fopen(argv[argc-1],"r");
while((ch=fgetc(in))!=EOF)
{
if(ch=='\n')
line++;
}
fclose(in);
in=fopen(argv[argc-1],"r");
for(i=1;(ch=fgetc(in))!=EOF;)
{
if(i>=line-n)
putchar(ch);
if(ch=='\n')
i++;
}
fclose(in);
return 0;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论