为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

宁波大学OJ系统C语言题目及参考答案精讲

2019-01-22 16页 doc 495KB 551阅读

用户头像 个人认证

不系舟红枫

从教近30年,经验丰富,教学水平较高

举报
宁波大学OJ系统C语言题目及参考答案精讲宁波大学OJ系统C语言题目及参考答案精讲 1000 整数输入输出练习 Description 从键盘输入任意两个整数,再向屏幕输出这两个数据。 Input 输入两个整数。 Output 输出这两个整数。以空格间隔。 Sample Input 7 -9 Sample Output 7 -9 HINT 本题的样例代码如下: #include int main() { int a,b; scanf("%d%d",&a,&b);   printf("%d %d\n",a,b); return ...
宁波大学OJ系统C语言题目及参考答案精讲
宁波大学OJ系统C语言题目及参考精讲 1000 整数输入输出练习 Description 从键盘输入任意两个整数,再向屏幕输出这两个数据。 Input 输入两个整数。 Output 输出这两个整数。以空格间隔。 Sample Input 7 -9 Sample Output 7 -9 HINT 本题的样例代码如下: #include int main() { int a,b; scanf("%d%d",&a,&b);   printf("%d %d\n",a,b); return 0; } 1001 字符输入输出练习1 Description 从键盘任意输入一个字符,再输出这个字符。 Input 任意输入一个字符。 Output 输出该字符。 Sample Input # Sample Output # #include int main() { char a; scanf("%c",&a); printf("%c\n",a); return 0; } 1002 单组A+B Description 从键盘输入任意两个整数a和b,计算并输出a+b的值。 Input 从键盘输入两个整数a和b。 Output 输出这两个数的和 Sample Input 1 2 Sample Output 3 #include int main() { int a,b,c; scanf("%d%d",&a,&b); c=a+b; printf("%d\n",c); return 0; } 1003 多组A+B(1) Description 分别计算多组a+b的值。 Input 输入包含多组测试数据。每行包含一组整数a,b。当输入为0 0 时,测试结束,此时的结果不输出。 Output 对于每一对整数a,b,输出它们的和,并且每行输出一个结果。 Sample Input 1 5 10 20 0 0 #include int main() { int a,b,y; scanf("%d%d",&a,&b); while(a!=0||b!=0) { y=a+b; printf("%d\n",y); scanf("%d%d",&a,&b); } return 0; } 1004 多组A+B(2) Description 分别计算多组a+b的值。 Input 第一行包含一个整数N,表示有N组数据。接下来的N行,每行输入一组a,b数据。 Output 对于每一对整数a,b,输出它们的和,并且每行输出一个结果。 Sample Input 2 1 5 10 20 Sample Output 6 30 #include int main() { int a,b,y,i=1,N; scanf("%d",&N); while(i<=N) { scanf("%d%d",&a,&b); y=a+b; printf("%d\n",y); i++; } return 0; } 1005 计算平均分(1) Description 输入一个学生的3门课成绩a,b,c,求出该学生的平均分。 Input 输入三个成绩a,b,c。 Output 输出平均值,要求保留1位小数。 Sample Input 60 70 80 Sample Output 70.0 #include int main() { double a,b,c,d; scanf("%lf%lf%lf",&a,&b,&c); d=(a+b+c)/3.0; printf("%.1f\n",d); return 0; } 06 计算月收入 Description 某小型外贸公司员工月收入的计算方法为:月基本工资加当月提成。从键盘输入某员工某月的基本工资和该月的提成,计算并输出该员工的月收入。 Input 输入两个数分别代表月基本工资和月提成。 Output 计算并输出月收入(保留2位小数)。 Sample Input 3100 1200 Sample Output 4300.00 #include int main() { double a,b,c; scanf("%lf%lf",&a,&b); c=a+b; printf("%.2f\n",c); return 0; } 1007 温度转换 Description 2011夏季,热浪席卷了全球的大部分地方。网上报道美国局部地区的温度达到了100华氏度,而我们国内的温度多在38摄氏度左右。那么38摄氏度和100华氏度到底哪个更热一些呢?请你帮忙编一个程序来解决这一问题。从键盘输入一个华氏温度,求出其对应的摄氏温度。计算公式如下: c=5*(f-32)/9 c表示摄氏温度,f表示华氏温度。 Input 输入一个华氏温度值。 Output 输出对应的摄氏温度值,结果要求保留2位小数。 Sample Input 100 Sample Output 37.78 #include int main() { double c,f; scanf("%lf",&f); c=5*(f-32)/9; printf("%.2f\n",c); return 0; } 1008 求圆周长和圆面积 Description 从键盘输入一个圆的半径r,计算并输出圆周长和圆面积。 Input 输入一个圆半径r。 Output 按序输出圆周长和圆面积,结果保留两位小数。 Sample Input 41 Sample Output 257.48 5278.34 HINT 圆周率使用3.14 #include #define PI 3.14 int main() { double r,c,s; scanf("%lf",&r); c=2*PI*r; s=PI*r*r; printf("%.2f %.2f\n",c,s); return 0; } 1009 求圆柱体表面积 Description 输入圆柱体的底面半径r和高h,计算圆柱体的表面积并输出到屏幕上,保留2位小数。 Input 输入圆柱体的底面半径r和高h。 Output 计算圆柱体的表面积并输出到屏幕上,保留2位小数。 Sample Input 42.1 71.6 Sample Output 30060.92 HINT 圆周率使用3.14 #include #define PI 3.14 int main() { double r,h,s; scanf("%lf%lf",&r,&h); s=2*PI*r*r+2*PI*r*h; printf("%.2f\n",s); return 0; } 1010 计算球体的体积 Description 编写程序计算球体的体积。参考公式v=(4/3)*PI*r*r*r,其中PI表示圆周率。球体的半径r的值由键盘输入,保留2位小数。 Input 输入球体半径r。 Output 计算球体体积并输出到屏幕上,保留2位小数。 Sample Input 96.2 Sample Output 3727293.58 HINT 圆周率使用3.14 #include #define PI 3.14 int main() { double r,v; scanf("%lf",&r); v=(4/3.0)*PI*r*r*r; printf("%.2f\n",v); return 0; } 1011 三角形面积 Description 从键盘上输入三角形的3条边的边长a,b,c(假定3条边长可以构成三角形),求三角形面积并输出到屏幕上。 可利用海伦公式求解:s=sqrt(p*(p-a)*(p-b)*(p-c));其中p=(a+b+c)/2; Input 输入三条边的边长(假设3条边长可以构成三角形)。 Output 输出三角形面积。保留2位小数。 Sample Input 3 4 5 Sample Output 6.00 #include #include int main() { double a,b,c,p,s; scanf("%lf%lf%lf",&a,&b,&c); p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf("%.2f\n",s); return 0; } 1012 判断三角形 Description 输入三角形的3条边a,b,c,如果能构成一个三角形,则输出面积,否则输出Error。 Input 输入三个数a,b,c(浮点类型)。 Output 如果这三条边能构成一个三角形就计算并输出这个三角形的面积,保留2位小数。如果不能构成三角形就输出Error。 Sample Input 3 1 4 Sample Output Error #include #include int main() { double a,b,c,p,s; scanf("%lf%lf%lf",&a,&b,&c); if(a+b>c&&fabs(a-b) #include int main() { double x1,x2,y1,y2,l; scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2); l=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); printf("%.2f\n",l); return 0; } 1014 数值类型转换 Description 输入一个双精度数,输出它的整型值。 Input 输入一个双精度数 Output 输出该数的浮点数形式(保留2位小数)和它对应的整型形式。两数之间以空格间隔。 Sample Input 1.22 Sample Output 1.22 1 #include #include int main() { double a; int b; scanf("%lf",&a); b=a; printf("%.2f %d\n",a,b); return 0; } 1015 两数交换 Description 从键盘输入两个整数x,y,然后交换它们的顺序并输出。 Input 输入两个整数x,y(以空格间隔)。 Output 首先输出x,y的初始值,然后换行输出交换后的两数。同一行内的数据以空格间隔。 Sample Input 12 23 Sample Output 12 23 23 12 #include #include int main() { int a,b,t; scanf("%d%d",&a,&b); printf("%d %d\n",a,b); t=a; a=b; b=t; printf("%d %d\n",a,b); return 0; } 1016 两数相除 Description 输入两个浮点数x,y,计算x除以y的值。 Input 输入两个浮点数x,y。 Output 输出运算结果的值,要求保留两位小数。 Sample Input 2 3 Sample Output 0.67 #include #include int main() { double x,y,t; scanf("%lf%lf",&x,&y); t=x/y; printf("%.2f\n",t); return 0; } 1017 商和余数 Description 输入两个整数x,y,计算x除以y的商和余数。 Input 输入两个整数x,y。 Output 输出商和余数。以空格间隔。 Sample Input 65 14 Sample Output 4 9 #include #include int main() { int x,y,a,b; scanf("%d%d",&x,&y); a=x/y; b=x%y; printf("%d %d\n",a,b); return 0; } 1018 植树问题 Description 某学校植树节开展植树活动,已知树苗有m株,参加植树的同学有n人(且m>n),请问每位同学平均可以植树几株?还有几株剩余? Input 输入两个整数m和n,分别表示树苗的数量和学生的人数(m>n)。 Output 输出每位同学平均植树的数量及剩余的树苗数量。 Sample Input 163 32 Sample Output 5 3 #include #include int main() { int m,n,a,b; scanf("%d%d",&m,&n); a=m/n; b=m%n; printf("%d %d\n",a,b); return 0; } 1019 美元和人民币 Description 美元越来越贬值了,手上留有太多的美元似乎不是件好事。赶紧算算你的那些美元还值多少人民币吧。假设美元与人民币的汇率是1美元兑换6.5573元人民币,编写程序输入美元的金额,输出能兑换的人民币金额。 Input 输入美元的金额。 Output 输出能兑换的人民币的数值。输出保留2位小数。 Sample Input 100 Sample Output 655.73 #include #include int main() { double x,y; scanf("%lf",&x); y=x*6.5573; printf("%.2f\n",y); return 0; } 1020 计算字符的ASCII码 Description 编写程序,从键盘输入一个字符,输出它的ASCII码值。 Input 输入一个字符。 Output 输出字符对应的十进制ASCII码值。 Sample Input A Sample Output 65 #include #include int main() { char x; scanf("%c",&x); printf("%d\n",x); return 0; } 1021 单个字母的小写变大写 Description 从键盘输入一个小写字母,将其转换成大写字母并输出。。 Input 输入一个小写字母。(假设输入的一定是小写字母) Output 输出其大写形式。 Sample Input a Sample Output A #include #include int main() { char x,y; scanf("%c",&x); y=x-32; printf("%c\n",y); return 0; } 1022 简单译码 Description 从键盘输入两个字母,对它们进行译码。如需要将”Hi”译成密码,规则是:用原字母后的第3个字母来代替,如H后面第3个字母是K,i后面第3个字母是l,因此“Hi”应译为“Kl”。 Input 从键盘输入两个字母,分别存放到变量ch1,ch2中。 Output 按上述规则进行译码后输出,输出字母间不加间隔。 Sample Input Hi Sample Output Kl #include int main() { char a,b; scanf("%c%c",&a,&b); a=a+3; b=b+3; printf("%c%c\n",a,b); return 0; } 1023 字符加减运算 Description 编写一个程序,求两个字符之间的加减运算。 Input 连续输入三个字符,其中第一个输入运算符号(+或者-),后两个输入字符。如+ab表示计算字符a与字符b相加的结果。 Output 输出两字符ASCII码值相加减的结果。 Sample Input -ab Sample Output -1 #include int main() { int a,b,c; c=getchar(); a=getchar(); b=getchar(); if(c=='-') { printf("%d\n",a-b); } else if(c=='+') { printf("%d\n",a+b); } return 0; } 1024 求多项式值(1) Description 求y=2*x^2+x+8的值。其中,x为浮点数,从键盘输入,经过计算后,将y的值输出到屏幕上,保留1位小数。 Input 输入浮点数x的值。 Output 计算并输出y的值,保留1位小数。 Sample Input 1 Sample Output 11.0 #include #include int main() { double x,y; scanf("%lf",&x); y=2*pow(x,2)+x+8; printf("%.1f\n",y); return 0; } 1025 求多项式值(2) Description 编程根据输入的x的值,结合函数计算多项式y=3*x^4-2*x^3-x^2+10的结果,结果保留1位小数。 Input 输入浮点数x的值。 Output 计算并输出多项式的结果,保留1位小数。 Sample Input 1 Sample Output 10.0 HINT 建议用double #include #include int main() { double x,y; scanf("%lf",&x); y=3*pow(x,4)-2*pow(x,3)-pow(x,2)+10; printf("%.1f\n",y); return 0; } 1026 居民电费 Description 某地居民用电是这样计算的,正常使用部分每度0.538元,阶梯部分每度0.03元。某用户家9月份正常部分用电量为x度,阶梯部分y度,请编程计算该用户9月份应该缴纳的电费。从键盘输入x和y,输出应缴纳电费,保留2位小数。 Input 输入x和y的值。 Output 输出应缴纳的电费,保留2位小数。 Sample Input 10 10 Sample Output 5.68 #include #include int main() { double x,y,m; scanf("%lf%lf",&x,&y); m=x*0.538+y*0.03; printf("%.2f\n",m); return 0; } 1027 存款利息(1) Description 输入存款金额money、存期year和年利率rate,根据公式计算存款到期时的利息interest(税前)。公式如下: interest=money(1+rate)^year-money Input 输入存款金额money、存期year和年利率rate。 Output 输出到期时的利息,保留2位小数。 Sample Input 1000 3 0.0415 Sample Output 129.74 HINT 建议用double #include #include int main() { double money,year,rate,interest; scanf("%lf%lf%lf",&money,&year,&rate); interest=money*pow(1+rate,year)-money; printf("%.2f\n",interest); return 0; } 1028存款利息(2) Description 输入人民币存款年利率I和存款总额S,计算满一年后本息合计并输出。 Input 输入年利率和存款总数。 Output 计算满一年后本息合计,保留两位小数。 Sample Input 0.03 100000 Sample Output 103000.00 #include #include int main() { double I,S; scanf("%lf%lf",&I,&S); S=S*(1+I); printf("%.2f\n",S); return 0; } 1029 三位数的数位分离 Description 从键盘输入一个任意的3位整数,分别求出其个位、十位和百位上的数字。 Input 输入任意的一个三位整数 Output 依次输出个位、十位、百位上的数字。以空格间隔。 Sample Input 367 Sample Output 7 6 3 #include #include int main() { int a,b,c,d; scanf("%d",&a); b=a%10; c=(a/10)%10; d=a/100; printf("%d %d %d\n",b,c,d); return 0; } 1030 棋盘上的麦粒 Description 舍罕是古印度的国王,据说他十分好玩。宰相依达尔为了讨好国王,发明了现今的国际象棋献给国王。国王非常喜欢,决定嘉奖宰相,许诺满足宰相提出的任何要求。宰相指着棋盘要求:“陛下,请您按棋盘的格子赏赐我一点小麦吧,第一个小格赏我1粒麦子,第二个小格赏我2粒,第三个小格赏4粒,以后每一小格都比前一个小格赏的麦子增加一倍,只要把棋盘上全部64个小格按这样的方法得到的麦子都赏赐给我,我就心满意足了”。国王听了宰相这个“小小”的要求,马上同意了。 结果在给宰相麦子时,国王发现他要付出的比自己想象的要多得多,于是进行了计算,结果令他大惊失色。问题是:舍罕王的计算结果是多少粒麦子。 Input 输入一个整数n代表棋盘的格子,该数字大于1且小于等于64。如输入2,则表示有2个格子,第一个格子放1粒,第二个格子放2粒,则2个格子一共需要3粒麦子。 Output 输出n个格子需要的麦粒数。 Sample Input 64 Sample Output 18446744073709551615 HINT 如果麦粒数sum如下定义:        unsigned __int64 sum;   则计算完成后其输出形式为:        printf("%I64u\n", sum); #include #include int main() { int i,m,a; unsigned __int64 s=0; scanf("%d",&m); for(i=0;i #include int main() { int a,b; scanf("%d",&a); if(a%10==0) a=a/10; while(a>0) { b=a%10; printf("%d",b); a=a/10; } printf("\n"); return 0; } 1032 各位数字求和 Description 编写一个程序,输入一个正整数,然后计算组成该数的各位数字的和。如,输入正数237,其各位的数字分别为2,3,7,加起来的和应该为2+3+7=12。 Input 输入一个正整数。 Output 输出各位数字的和 Sample Input 1234 Sample Output 10 #include #include int main() { int a,b,c=0; scanf("%d",&a); if(a%10==0) a=a/10; while(a>0) { b=a%10; c+=b; a=a/10; } printf("%d\n",c); return 0; } 1033 计算最高位数字 Description 输入一个任意长度的正整数,求出其最高位数字。如,输入237,则最高位数字为2。 Input 输入一个正整数。 Output 输出最高位数字 Sample Input 4756 Sample Output 4 #include #include int main() { int a; scanf("%d",&a); if(a%10==0) a=a/10; while(!(a>=0&&a<=9)) { a=a/10; } printf("%d\n",a); return 0; } 1034 任意长度整数的位数 Description 输入一个任意长度的正整数,求出它是几位数。 Input 输入一个任意长度的正整数。 Output 输出位数 Sample Input 0 Sample Output 1 #include #include int main() { int a,i=1; scanf("%d",&a); while(!(a>=0&&a<=9)) { a=a/10; i+=1; } printf("%d\n",i); return 0; } 1035 求整数的绝对值 Description 输入一个整数,输出它的绝对值 Input 输入一个整数n Output 输出该数的绝对值 Sample Input -2 Sample Output 2 #include #include int main() { int n,a; scanf("%d",&n); a=fabs(n); printf("%d\n",a); return 0; } 1036 符号属性判断 Description 从键盘输入任意数x,根据其符号属性,输出对应的y值。 y=-1  (x<0) y=0   (x=0) y=1   (x>0) Input 输入x。 Output 输出y的值 Sample Input 10 Sample Output 1 HINT x取浮点类型 #include #include int main() { double x; int y; scanf("%lf",&x); if(x<0) y=-1; else if(x==0) y=0; else y=1; printf("%d\n",y); return 0; } 1037 正数负数 Description 输入一个整数,判断该数是正数还是负数。 Input 输入整数n。 Output 如果该数是正数就输出“positive”,负数就输出“negative”(输出不含双引号)。  Sample Input 8 Sample Output positive #include #include int main() { int n; scanf("%d",&n); if(n>0) printf("positive\n"); else if(n<0) printf("negative\n"); return 0; } 1038 奇数偶数 Description 输入一个整数,判断该数是奇数还是偶数。 Input 输入整数n。 Output 如果该数是奇数就输出“odd”,偶数就输出“even”(输出不含双引号)。 Sample Input 8 Sample Output even #include #include int main() { int n; scanf("%d",&n); if(n%2==0) printf("even\n"); else if(n%2==1) printf("odd\n"); return 0; } 1039 奇数和与偶数和(1) Description 输入正整数n,计算1~n中的奇数和以及偶数和并输出。 Input 输入一个正整数n。 Output 依次输出奇数和以及偶数和,各占一行。 Sample Input 100 Sample Output 2500 2550 #include #include int main() { int n,a=0,b=0,i=1; scanf("%d",&n); while(i<=n) { if(i%2==1) a+=i; else b+=i; i++; } printf("%d\n%d\n",a,b); return 0; } 1040 奇数和与偶数和(2) Description 输入正整数n,然后依次输入n个正整数,计算其中的奇数和与偶数和并输出。 Input 先输入一个正整数n,然后依次输入n个正整数。 Output 依次输出其中的奇数和以及偶数和,各占一行。 Sample Input 5 1 8 9 6 4 Sample Output 10 18 #include #include int main() { int n,m,a=0,b=0,i=1; scanf("%d",&n); while(i<=n) { scanf("%d",&m); if(m%2==1) a+=m; else b+=m; i++; } printf("%d\n%d\n",a,b); return 0; } 1041 分段函数(1) Description 有一函数: y=x     (x<1) y=3x-1 (1<=x<10) y=4x-2  (x>=10) 编写程序,输入x,输出y的值。 Input 输入一个任意整数x。 Output 输出函数y的值。 Sample Input 3 Sample Output 8 #include #include int main() { int x,y; scanf("%d",&x); if(x<1) y=x; else if(x>=1&&x<10) y=3*x-1; else y=4*x-2; printf("%d\n",y); return 0; } 1042 分段函数(2) Description 输入整数x,计算并输出下面分段函数的值(保留两位小数)。 y=x^2-2     (x>=0) y=sqrt(5-x)  (x<0) Input 输入一个整数x。 Output 输出函数的值。保留2位小数。 Sample Input 3 Sample Output 7.00 #include #include int main() { int x; double y; scanf("%d",&x); if(x>=0) y=pow(x,2)-2; else if(x<0) y=sqrt(5-x); printf("%.2f\n",y); return 0; } 1043 分段函数(3) Description 输入浮点数x,计算并输出下面分段函数y的值(保留两位小数)。 y=(x+1)^2+2x+1/x     (x<0) y=sqrt(x)                  (x>=0) Input 输入一个浮点数。 Output 输出函数的值。保留2位小数。 Sample Input 10 Sample Output 3.16 #include #include int main() { double x,y; scanf("%lf",&x); if(x<0) y=(x+1)*(x+1)+2*x+(1/x); else if(x>=0) y=sqrt(x); printf("%.2f\n",y); return 0; } 1044 第几象限 Description 从键盘输入2个整数x、y值表示一个坐标点,判断该坐标点处于第几象限,并输出相应的结果。假设坐标点不会处于x轴和y轴上。 Input 输入x,y值表示一个坐标点。坐标点不会处于x轴和y轴上。 Output 输出对应的象限,用数字1,2,3,4分别对应四个象限。 Sample Input 1 1 Sample Output 1 #include #include int main() { double x; double y; scanf("%lf%lf",&x,&y); if(x>0&&y>0) printf("1\n"); else if(x<0&&y>0) printf("2\n"); else if(x<0&&y<0) printf("3\n"); else printf("4\n"); return 0; } 1045 圆内圆外 Description 有一个半径为10的圆,圆心坐标为(0,0),从键盘输入任意点的坐标(a,b),判断该点在圆内,在圆外,还是恰巧在圆周上。 Input 输入a,b(a,b均为整数)值表示一个坐标点。 Output 输出对应的信息。in表示在圆内,out表示在圆外,on表示在圆周上。 Sample Input 1 1 Sample Output in #include #include int main() { int a,b; double c; scanf("%d%d",&a,&b); c=sqrt(a*a+b*b); if(c>10) printf("out\n"); else if(c==10) printf("on\n"); else printf("in\n"); return 0; } 1046 判断英文字母 Description 编写一个程序,判断输入的一个字符是否是英文字母。 Input 任意输入一个字符。 Output 输出该字符是否属于英文字母的信息(大小写都可以),属于则输出YES,不属于则输出NO。 Sample Input 2 Sample Output NO #include #include int main() { char a; scanf("%c",&a); if(a>='a'&&a<='z'||a>='A'&&a<='Z') printf("YES\n"); else printf("NO\n"); return 0; } 1047 单个字母大小写互换 Description 从键盘输入一个英文字母,要求编写一个程序,实现字母的大小写转换。如果输入的是小写字母,则输出其大写形式。如果输入的是大写字母,则输出其小写形式。若是其他字符则原样输出。如输入A,则输出a;若输入#,则依然输出#。 Input 任意输入一个英文字母。 Output 输出对应字符的大(小)写字符,(如A对应于a)。 Sample Input b Sample Output B #include int main() { char x,y; scanf("%c",&x); if(x>='A'&&x<='Z') { y=x+32; printf("%c\n",y); } else if(x>='a'&&x<='z') { y=x-32; printf("%c\n",y); } else { y=x; printf("%c\n",y); } return 0; } 1048 ASCII码对应的英文字母 Description 从键盘输入一个代表ASCII码值的数字(<127),若该数字对应的字符是英文字母,则输出其字母的形式,否则输出数字本身。 Input 输入一个数字(小于127)。 Output 输出该ASCII值对应的英文字母。 Sample Input 98 Sample Output b #include #include int main() { int a; scanf("%d",&a); if(a>='a'&&a<='z'||a>='A'&&a<='Z') printf("%c\n",a); else printf("%d\n",a); return 0; } 1049 单个字符判断 Description 从键盘输入一个字符,判断该字符是否大写字母、小写字母、数字字符或其他字符。分别输出对应的提示信息。 Input 输入一个字符。 Output 如果该字符是大写字母,则输出“upper”;若是小写字母,则输出“lower”;若是数字字符,则输出“digit”;若是其他字符,则输出“other”。(输出不含双引号)。 Sample Input 1 Sample Output digit #include int main() { char a; scanf("%c",&a); if(a>='A'&&a<='Z') printf("upper\n"); else if(a>='a'&&a<='z') printf("lower\n"); else if(a>='0'&&a<='9') printf("digit\n"); else printf("other\n"); return 0; } 1050 字符个数统计 Description 统计从键盘输入的一行字符的个数(字符串长度小于等于1000)。输入以换行符结束。 Input 输入一行字符,以换行符作为结束标记。 Output 统计字符的个数并输出。不包括换行符。 Sample Input Hello Boy. Sample Output 10 #include int main() { char a; int i=0; scanf("%c",&a); while(a!='\n') { i++; scanf("%c",&a); } printf("%d\n",i); return 0; } 1051 字母统计 Description 编写程序:输入一行字符串(字符串长度小于等于1000),统计出其中的英文字母的个数。以输入换行符作为结束。 Input 输入一行字符串,以换行符结束。 Output 输出字母的个数 Sample Input Hello Mr.007,my name is @#$% Sample Output 15 #include int main() { char a; int i=0; scanf("%c",&a); while(a!='\n') { if(a>='a'&&a<='z'||a>='A'&&a<='Z') i++; scanf("%c",&a); } printf("%d\n",i); return 0; } 1052 数字字符统计 Description 编写程序:输入一行字符串(长度小于等于1000),统计出其中的数字字符的个数。以输入换行字符作为结束。 Input 输入一行字符串,以换行符结束。 Output 输出数字字符的个数 Sample Input Hello Mr.007,my name is @#$% Sample Output 3 #include int main() { char a; int i=0; scanf("%c",&a); while(a!='\n') { if(a>='0'&&a<='9') i++; scanf("%c",&a); } printf("%d\n",i); return 0; } 1053 字符分类统计 Description 从键盘输入一行字符串(字符串长度小于等于1000),统计出其中的英文字母、空格、数字和其它字符的个数。输入以换行符结束。 Input 输入一行字符串,以换行符作为结束标记。 Output 按字母、数字、空格、其它字符的顺序输出各类字符的统计结果。为0的项目也要输出。用空格隔开(最后一个数字的后面无空格)。 Sample Input Hello Boy. It is 30 July. Sample Output 16 2 5 2 #include int main() { char e; int a=0,b=0,c=0,d=0; scanf("%c",&e); while(e!='\n') { if(e>='a'&&e<='z'||e>='A'&&e<='Z') a++; else if(e>='0'&&e<='9') b++; else if(e==' ') c++; else d++; scanf("%c",&e); } printf("%d %d %d %d\n",a,b,c,d); return 0; } 1054 相邻字符判相等 Description 输入一行字符串(长度小于等于1000),以换行符结束。判断其中是否存在相邻两个字符相同的情形,若有,则输出该相同的字符并结束程序(只需输出第一种相等的字符即可)。否则输出No。 Input 输入一行字符。 Output 若相邻字符相等则输出该相同的字符,否则输出No。 Sample Input hello anna Sample Output l #include #include #define N 1000 int main() { int i=0,a=0; char str[N]; scanf("%s",str); while(str[i]!='\0') { if(str[i]==str[i+1]) {printf("%c\n",str[i]);a++;break;} i++; } if(a==0) printf("No\n"); return 0; } 1055 统计行数 Description 编写一个程序,要求统计输入文本的行数。 Input 每行输入任意长度的字符串(每一行的字符串的长度小于等于1000),以输入仅由‘@’号构成的行作为结束, @所在的行不计入行数(文本) Output 输出文本的行数。 Sample Input Hello world! I come from China! I’m a boy! @ Sample Output 3 #include #include #include #define n 1000 int main() { char str[n]; int i=0,v=0,j; gets(str); j=strlen(str); while(j!=1||str[i]!='@') { v++; gets(str); j=strlen(str); } printf("%d\n",v); return 0; } 1056 特定字符出现次数 Description 从键盘输入一个字符串(长度小于等于1000),以换行结束。再输入一个特定字符ch,判断ch在字符串中的出现次数。 Input 从键盘输入一个字符串,以换行结束。再输入一个特定字符ch。 Output 输出ch在字符串中的出现次数。 Sample Input THIS IS A TEST I Sample Output 2 #include #include #include #define n 1000 int main() { char str[n],ch; int i,j,v=0; gets(str); j=strlen(str); scanf("%c",&ch); for(i=0;i #include #define N 1000 int main() { char str[N]; int i=0; gets(str); while(str[i]!='\0') { if(str[i]>='a'&&str[i]<='z') str[i]-=32; else if(str[i]>='A'&&str[i]<='Z') str[i]+=32; i++; } puts(str); return 0; } 1058 成绩合格问题 Description 输入一个整数表示课程成绩,判断学生成绩是否合格:当分数大于等于60分时,输出合格信息,在60分以下的,输出不合格信息。 Input 输入一个成绩。 Output 如果该数大于等于60,则输出“pass”,否则输出“failure”。(输出不含双引号)。 Sample Input 61 Sample Output pass #include int main() { int a; scanf("%d",&a); if(a>=60) printf("pass\n"); else printf("failure\n"); return 0; } 1059 成绩评级1 Description 对学生成绩(百分制)评等级:80分(含)以上为A等,60~79为B等,小于60分为C等。 Input 输入一个整数形式的百分制的成绩(0~100)。 Output 如果该成绩大于等于80则输出A,在60~79之间则输出B,小于60分则输出C。 Sample Input 60 Sample Output B #include int main() { int a; scanf("%d",&a); if(a>=80) printf("A\n"); else if(a>=60&&a<=79) printf("B\n"); else printf("C\n"); return 0; } 1060 成绩评级2 Description 在学生成绩管理中,成绩经常需要在百分制与等级制之间进行转换。输入一个表示成绩的百分制分数,将其转换为对应的等级制并输出。 90分以上 打印 A 80---89    打印 B 70---79    打印 C 60---69    打印 D 60 以下   打印 E Input 输入一个整数表示百分制的成绩,保证输入的整数在0到100之内。 Output 输出百分制转换后对应的五级制 Sample Input 95 Sample Output A #include int main() { int a; scanf("%d",&a); if(a>=90) printf("A\n"); else if(a>=80&&a<=89) printf("B\n"); else if(a>=70&&a<=79) printf("C\n"); else if(a>=60&&a<=69) printf("D\n"); else printf("E\n"); return 0; } 1061 两数求大数 Description 从键盘输入任意两个整数,求出其中较大数的数值并输出。 Input 输入两个整数。 Output 输出较大数的数值。 Sample Input 18 9 Sample Output 18 #include int main() { int a,b; scanf("%d%d",&a,&b); if(a int main() { int a,b; scanf("%d%d",&a,&b); if(a int main() { char a,b; scanf("%c%c",&a,&b); if(a int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); if(ac) printf("%d\n",a); } return 0; } 1065 三整数排序 Description 从键盘输入三个整数x,y,z,按从大到小的顺序输出它们的值。 Input 输入三个整数x,y,z。 Output 按从大到小的顺序输出它们的值。数据之间以空格间隔。 Sample Input 20 16 18 Sample Output 20 18 16 #include int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); if(ac) if(b>c) printf("%d %d %d\n",a,b,c); else printf("%d %d %d\n",a,c,b); else printf("%d %d %d\n",c,a,b);} return 0; } 1066 鸡兔同笼(1) Description 一个笼子里关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡的数目和兔的数目。如果无解,则输出NO answer。 Input 输入整数n和m,分别表示鸡兔的总数量及总腿数。 Output 依次输出鸡的数目和兔的数目。如果无解,则输出NO answer。 Sample Input 5 16 Sample Output 2 3 #include int main() { int n,m,x,y; scanf("%d%d",&n,&m); x=2*n-0.5*m; y=0.5*m-n; if(x>=0&&y>=0&&n==x+y) printf("%d %d\n",x,y); else printf("NO answer\n"); return 0; } 1067 夏季促销 Description 商场夏季促销,购物500元以下,不打折;购物500元(含)以上,95折;购物1000元(含)以上,9折;购物3000元(含)以上,85折;购物5000元(含)以上,8折。根据消费金额,确定用户实际需要支付的数目。 Input 输入消费金额。 Output 输出用户实际需要支出的数目,保留两位小数。 Sample Input 5100 Sample Output 4080.00 #include #include int main() { double a; scanf("%lf",&a); if(a<500) printf("%.2f\n",a); else if(a>=500&&a<1000) printf("%.2f\n",0.95*a); else if(a>=1000&&a<3000) printf("%.2f\n",0.90*a); else if(a>=3000&&a<5000) printf("%.2f\n",0.85*a); else printf("%.2f\n",0.80*a); return 0; } 1068 公园门票 Description 某公园门票的票价是每人50元,一次购票满30张,每张可以少收2元。试编写自动计费系统程序。 Input 输入购票的张数 Output 输出用户实际需要支付的金额,保留两位小数。 Sample Input 30 Sample Output 1440.00 #include #include int main() { double a; scanf("%lfd",&a); if(a<30) printf("%.2f\n",a*50); else printf("%.2f\n",a*48); return 0; } 1069 飞船飞行情况 Description 在“神州号”程序中,需要判断飞船飞行状况。当飞船速度继续加大时,飞船将达到第二宇宙、第三宇宙速度。试编写程序,输入不同的飞船速度V,判断它的各种飞行状况,并按要求显示出来。飞船速度( V) 单位(km/s) 7.91<=V<11.19      则输出1 ,表示飞船绕地球做匀速圆周运动;                        11.19<=V<16.67    则输出2,表示(飞船离开地球的控制 ,围绕太阳转; V>=16.67              则输出3,表示飞船挣脱太阳引力飞出太阳系。 Input 输入一个浮点数表示飞船速度(假设输入速度大于等于7.91) Output 输出该飞船的飞行情况 Sample Input 10.00 Sample Output 1 #include #include int main() { double a; scanf("%lf",&a); if(a>=7.91&&a<11.19) printf("1\n"); else if(a>=11.19&&a<16.67) printf("2\n"); else printf("3\n"); return 0; } 1070 5和7的整倍数(1) Description 试编程判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no Input 输入一个正整数。 Output 如果是5和7的整倍数就输出yes,如果不是就输出no Sample Input 35 Sample Output yes #include #include int main() { int a,b,c; scanf("%d",&a); b=a%5; c=a%7; if(b==0&&c==0) printf("yes\n"); else printf("no\n"); return 0; } 1071 5和7的整倍数(2) Description 输入正整数n,试编程输出n以内能被5和7整除的数。(不包括n) Input 输入一个整整数n。 Output 输出n以内能被5和7整除的数。以空格间隔。 Sample Input 100 Sample Output 35 70 #include #include int main() { int n,i=1; scanf("%d",&n); while(i #include int main() { int a; scanf("%d",&a); if(a%4==0&&a%100!=0||a%400==0) printf("yes\n"); else printf("no\n"); return 0; } 1073 计算某年某月的天数 Description 计算某年某月的天数。一个程序,根据用户输入的年,月,打印出该年的这一个月的天数。如用户输入的信息是2011年的4月,则打印出该月的天数为30。 Input 输入年和月的数值。如2011 2表示2011年的2月份。 Output 输出该月的天数。 Sample Input 2011 2 Sample Output 28 #include #include int main() { int a,b,c; scanf("%d%d",&a,&b); switch(b) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: c=31; break; case 4: case 6: case 9: case 11: c=30; break; case 2: if(a%4==0&&a%100!=0||a%400==0) c=29; else c=28; break; } printf("%d\n",c); return 0; } 1074 年龄 Description 编写程序,输入一位学生的生日(年:y0,月:m0,日:d0);并输入当前的日期(年:y1,月:m1,日:d1);输出该生的实足年龄。 Input 输入学生的数据,每行6个整型,用空格隔开,依次代表y0、m0、d0、y1、m1、d1的值。 Output 输出该生的实足年龄。 Sample Input 1990 9 10 2008 5 5 Sample Output 17 #include int main() { int a,b,c,d,e,f; int N; scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f); N=d-a; if(e int main() { int a,b; scanf("%d%d",&b,&a); if(b%4==0&&b%100!=0||b%400==0) { if(a>=0&&a<=31) printf("%d-1-%d\n",b,a); else if(a>31&&a<=60) printf("%d-2-%d\n",b,a-31); else if(a>60&&a<=91) printf("%d-3-%d\n",a,b-60); else if(a>91&&a<=121) printf("%d-4-%d\n",b,a-91); else if(a>121&&a<=152) printf("%d-5-%d\n",b,a-121); else if(a>152&&a<=182) printf("%d-6-%d\n",b,a-152); else if(a>182&&a<=213) printf("%d-7-%d\n",b,a-182); else if(a>213&&a<=244) printf("%d-8-%d\n",b,a-213); else if(a>244&&a<=274) printf("%d-9-%d\n",b,a-244); else if(a>274&&a<=305) printf("%d-10-%d\n",b,a-274); else if(a>305&&a<=335) printf("%d-11-%d\n",b,a-305); else printf("%d-12-%d\n",b,a-335); } else { if(a>=0&&a<=31) printf("%d-1-%d\n",b,a); else if(a>31&&a<=59) printf("%d-2-%d\n",b,a-31); else if(a>59&&a<=90) printf("%d-3-%d\n",b,a-59); else if(a>90&&a<=120) printf("%d-4-%d\n",b,a-90); else if(a>120&&a<=151) printf("%d-5-%d\n",b,a-120); else if(a>151&&a<=181) printf("%d-6-%d\n",b,a-151); else if(a>181&&a<=212) printf("%d-7-%d\n",b,a-181); else if(a>212&&a<=243) printf("%d-8-%d\n",b,a-212); else if(a>243&&a<=273) printf("%d-9-%d\n",b,a-243); else if(a>273&&a<=304) printf("%d-10-%d\n",b,a-273); else if(a>304&&a<=334) printf("%d-11-%d\n",b,a-304); else printf("%d-12-%d\n",b,a-334); } return 0; } 1076 a^2+b^2 Description 编程输入整数a和b,若a^2+b^2 大于100,则输出a^2+b^2 百位以上的数字,否则输出a^2+b^2之和。 Input 输入整数a和b。 Output 输出对应结果。 Sample Input 3 5 Sample Output 34 #include #include int main() { int a,b,c; scanf("%d%d",&a,&b); c=pow(a,2)+pow(b,2); if(c>100) printf("%d\n",c/100); else printf("%d\n",c); return 0; } 1077 员工薪水(1) Description 某公司规定,每周工作40(含)小时内工资是30元/小时,超过40小时后超出部分按1.5倍给付。编写程序,根据输入工作时数计算雇员收入。 Input 输入一个整数表示某一周工作的小时数。 Output 输出员工这一周的薪水 Sample Input 41 Sample Output 1245 #include #include int main() { int a; scanf("%d",&a); if(a<40) printf("%d\n",30*a); else printf("%d\n",1200+(a-40)*45); return 0; } 1078 员工薪水(2) Description 某公司规定,销售人员工资由基本工资和销售提成两部分组成,其中基本工资是1500元/月,销售提成规则如下: 销售额小于等于10000元时,按照5%提成; 销售额大于10000元但小于等于50000元时,超出10000部分按照3%提成; 销售额大于50000元时,超出50000部分按照2%提成。 编写程序,根据销售额计算员工收入。 Input 输入一个整数表示销售额 Output 输出员工的薪水,保留2位小数。 Sample Input 9000 Sample Output 1950.00 #include #include int main() { int a; scanf("%d",&a); if(a<=10000) printf("%.2f\n",1500+a*0.05); else if(a>10000&&a<=50000) printf("%.2f\n",2000+(a-10000)*0.03); else printf("%.2f\n",3200+(a-50000)*0.02); return 0; } 1079 所得税 Description 编写程序,根据收入计算出个人所得税。个人所得税法规定,每月收入额减除费用3000元后的余额,为应纳税所得额。个人所得税税率表如下:级数     全月应纳税所得额                        税率(%) 1    小于等于1500元的部分                           5 2    大于1500元且小于等于4500元的部分       10 3    大于4500元且小于等于9000元的部分       20 4    大于9000元且小于等于35000元的部分     25  5    大于35000元且小于等于55000元的部分   30 6    大于55000元且小于等于80000元的部分   35 7   大于80000元的部分                               45  (注:本表所称全月应纳税所得额是指每月收入额减除费用 3000元后的余额) Input 输入一个整数表示个人的月收入。 Output 输出应交的税,如果应交税额为零,则直接输出数字0,否则输出需要缴纳的税额并保留2位小数。 Sample Input 9999 Sample Output 874.80 #include #include int main() { int a; scanf("%d",&a); a=a-3000; if(a<0) printf("0"); else if(a>0&&a<=1500) printf("%.2f\n",a*0.05); else if(a>1500&&a<=4500) printf("%.2f\n",75+(a-1500)*0.1); else if(a>4500&&a<=9000) printf("%.2f\n",375+(a-4500)*0.20); else if(a>9000&&a<=35000) printf("%.2f\n",1275+(a-9000)*0.25); else if(a>35000&&a<=55000) printf("%.2f\n",7775+(a-35000)*0.3); else if(a>55000&&a<=80000) printf("%.2f\n",13775+(a-55000)*0.35); else printf("%.2f\n",22525+(a-80000)*0.45); return 0; } 1080 求乘客支付的车费 Description 某城市普通出租车收费如下:起步里程小于等于3公里,起步费10元;超起步里程后小于等于10公里的,每公里租费2元;超过10公里以上的部分加收50%的回空补贴费,即每公里租费3元。营运过程中,因路阻及乘客要求临时停车的,每5分钟按1公里租费(租费两元)计收,不足5分钟的按5分钟计,保留到元,计算并输出乘客应支付的车费(元)。 Input 输入行驶里程与等待时间,均为整数。 Output 输出该乘客应支付的车费,保留到元(整数)。 Sample Input 3 0 Sample Output 10 HINT 如行驶里程为0,但等待时间非0,也需要计费。 #include int main() { int x,z,y; scanf("%d%d",&x,&z); if(x<=0) y=0; else if(x<=3) y=10; else if(x<=10) y=10+2*(x-3); else y=24+3*(x-10); if(z%5!=0) y=y+(z/5+1)*2; else y=y+2*(z/5); printf("%d\n",y); return 0; } 1081 一元二次方程 Description 求方程ax^2+bx+c=0的根。 Input 输入方程系数a、b、c ( 假设b^2 - 4ac>= 0 )。 Output 依次输出方程的根x1、x2(x1>x2)。若只有一个解,则输出x1。(结果保留2位小数)。 Sample Input 1 3 2 Sample Output -1.00 -2.00 #include #include int main() { double a,b,c,d,e; scanf("%lf%lf%lf",&a,&b,&c); if(b*b-4*a*c==0) { d=-b/(2*a); printf("%.2f\n",d); } else { d=(-b+sqrt(b*b-4*a*c))/(2*a); e=(-b-sqrt(b*b-4*a*c))/(2*a); printf("%.2f %.2f\n",d,e); } return 0; } 1082 求点的高度 Description 假设有四个圆塔,圆心座标分别为(2,2) (-2,2) (-2,-2)  (2,-2)。圆塔直径都为1,圆塔高50米,其他都为平地(高度为0)。要求给出任一坐标值(x,y),打印出该点的高度。 Input 输入两个数x,y表示一个点的坐标。 Output 输出该点的高度 Sample Input -2 2 Sample Output 50 HINT double #include #include int main() { double a,b,r; scanf("%lf%lf",&a,&b); r=sqrt((fabs(a)-2)*(fabs(a)-2)+(fabs(b)-2)*(fabs(b)-2)); if(r<=0.5) printf("50\n"); else printf("0\n"); return 0; } 1083 1到10的英文单词 Description 输入1到10之间的任意一个数字,输出相应的英文单词(首字母大写)。如果输入其他数字则输出Error。 Input 输入1~10之间的任意一个数字。 Output 输出相应的英文单词。首字母大写。 Sample Input 8 Sample Output Eight #include #include int main() { int a; scanf("%d",&a); switch(a) { case 1:printf("One\n");break; case 2:printf("Two\n");break; case 3:printf("Three\n");break; case 4:printf("Four\n");break; case 5:printf("Five\n");break; case 6:printf("Six\n");break; case 7:printf("Seven\n");break; case 8:printf("Eight\n");break; case 9:printf("Nine\n");break; case 10:printf("Ten\n");break; default:printf("Error\n"); } return 0; } 1084 四则运算 Description 输入一个数学表达式,输出运算结果。如输入为3+8,则输出结果11.000000,如输入为7*8,则输出结果为56.000000。(运算符号局限于+、-、*、/四种) Input 输入形式为a+(-,*,/)b,即一个数字、一个四则运算符号、一个数字。如3+8。 Output 输出运算结果,如11.000000。 Sample Input 3+8 Sample Output 11.000000 #include #include int main() { char b; double a,c,q; scanf("%lf%c%lf",&a,&b,&c); switch(b) { case'+':q=a+c;break; case'-':q=a-c;break; case'*':q=a*c;break; case'/': if(c!=0) q=a/c;break; } printf("%lf\n",q); return 0; } 1085 运费计算 Description 某运输公司对用户按照路程计算每公里运费。路程越远,每公里运费越低。运费标准如下: 路程km               折扣 s<250              无折扣 250<=s<500      2% 500<=s<1000    5% 1000<=s<2000  8% 2000<=s<3000  10% s>=3000            15% 假设每公里每吨货物的基本运费为p元,货物重量为w吨,距离为s公里。 Input 输入基本运费p(<10),货物重量w(<1000),距离s(<4000)。 Output 输出实际产生的运费。(输出时保留2位小数) Sample Input 0.2 100 300 Sample Output 5880.00 #include #include int main() { double p,w,s,q; scanf("%lf%lf%lf",&p,&w,&s); if(s<250) q=p*w*s; else if(s>=250&&s<500) q=p*w*s*0.98; else if(s>=500&&s<1000) q=p*w*s*0.95; else if(s>=1000&&s<2000) q=p*w*s*0.92; else if(s>=2000&&s<3000) q=p*w*s*0.9; else q=p*w*s*0.85; printf("%.2f\n",q); return 0; } 1086 简单数字打印 Description 编写程序打印数字1,2,3,…,n,要求每个数字占据一行。 Input 输入整数n(n<100)。 Output 输出1,2,3,…,n,要求每个数字占据一行。 Sample Input 5 Sample Output 1 2 3 4 5 #include #include int main() { int n,i=1; scanf("%d",&n); while(i<=n) { printf("%d\n",i); i++; } return 0; } 1087 字符串输入输出(2) Description 输入长度不超过3的字符序列并原样输出。 Input 输入长度不超过3的字符序列。 Output 输出该字符序列。 Sample Input Cat Sample Output Cat #include #include #define N 3 int main() { char str[N]; scanf("%s",str); printf("%s",str); putchar('\n'); return 0; } 1088 字符串输入输出(3) Description 输入任意长度的字符串(以换行结束),原样输出. Input 输入任意长度的字符串(<100个字符)(以换行结束) Output 将输入的字符串从屏幕上原样输出 Sample Input Hello C Language. Sample Output Hello C Language. #include #include #include #define n 100 int main() { char str[n]; int i,j; gets(str); j=strlen(str); for(i=0;i #include int main() { int i,m,n; int count=0; scanf("%d%d",&m,&n); for(i=m;i<=n;i++) { if(i%3==0) continue; else { count++; if(count!=0&&count%5==0||i==n) printf("%d\n",i); else printf("%d ",i); } } return 0; } 1090 整数数列求和(1) Description 编写程序,要求计算m=1+2+3+4+····+n。 Input 输入一个正整数n(<2000)。 Output 输出对应的m。 Sample Input 10 Sample Output 55 #include #include int main() { int m=0,n,i; scanf("%d",&n); for(i=1;i<=n;i++) { m+=i; } printf("%d\n",m); return 0; } 1091 整数数列求和(2) Description 编写程序,计算:m=1-2+3-4+····+(-)n。 Input 输入一个正整数n(<1000)。 Output 输出对应的m。 Sample Input 10 Sample Output -5 #include #include int main() { int m=0,n,i,a; scanf("%d",&n); for(i=1;i<=n;i++) { a=i; if(a%2==0) a=-i; m+=a; } printf("%d\n",m); return 0; } 1092 整数数列求和(3) Description 输入一个整数n,计算s=1+3+5+…+97+n。n是一个奇数(n>1)。 Input 输入一个奇数n(<1000)。 Output 输出s=1+3+…+n的和。 Sample Input 5 Sample Output 9 #include #include int main() { int m=0,n,i=1; do { scanf("%d",&n); } while(n%2==0); while(i-2!=n) { m+=i; i=i+2; } printf("%d\n",m); return 0; } 1093 整数数列求和(4) Description 输入一个整数n,计算s=1+1+2+1+2+3+1+2+3+4+…+1+2+3+…+n。 Input 输入一个整数n(<100)(假设n为3)。 Output (若n为3)输出s=1+1+2+1+2+3的和。 Sample Input 3 Sample Output 10 #include #include int main() { int m=0,n,i=1,a=0; scanf("%d",&n); for(i=1;i<=n;i++) { a+=i; m+=a; } printf("%d\n",m); return 0; } 1094 整数数列求和(5) Description 输入一个正整数n,计算s=1+2*2+3*3+….n*n。 Input 输入一个正整数n(<100)。 Output 输出s的值。 Sample Input 3 Sample Output 14 #include #include int main() { int s=0,n,i,a=0; scanf("%d",&n); for(i=1;i<=n;i++) { a=i*i; s+=a; } printf("%d\n",s); return 0; } 1095 整数数列求和(6) Description 输入一个整数n,计算s=1*2+2*3+3*4+…+n*(n+1)。 Input 输入一个整数n(<100)。 Output 输出计算结果。 Sample Input 3 Sample Output 20 #include #include int main() { int s=0,n,i,a=0; scanf("%d",&n); for(i=1;i<=n;i++) { a=i*(i+1); s+=a; } printf("%d\n",s); return 0; } 1096 求立方和 Description 编写程序,求sum=1*1*1+2*2*2+3*3*3+4*4*4+5*5*5+····+n*n*n。 Input 输入一个正整数n(n<=60)。 Output 输出对应的sum。 Sample Input 2 Sample Output 9 #include #include int main() { int s=0,n,i,a=0; scanf("%d",&n); for(i=1;i<=n;i++) { a=i*i*i; s+=a; } printf("%d\n",s); return 0; } 1097 整数数列求和(7) Description 求s=a+aa+aaa+aaaa+….的值,其中,a是0~9范围内的一个数字。输入n和a,其中n表示累加的项数。例如,当n=5,a=2时,s=2+22+222+2222+22222。 Input 输入整数n和a,均<9。 Output 计算s=a+aa+aaa+aaaa+….的值并输出,其中共有n项进行累加。 Sample Input 3 2 Sample Output 246 #include #include int main() { int s=0,n,i,a,b=0; scanf("%d%d",&n,&a); for(i=1;i<=n;i++) { b+=pow(10,i-1); s+=a*b; } printf("%d\n",s); return 0; } 1098 分数数列求和(1) Description 输入一个正整数n,计算1+1/2+1/3….的前n项之和,输出时保留6位小数。 Input 输入正整数n(n<100) Output 输出前n项之和,保留6位小数。 Sample Input 2 Sample Output 1.500000 #include #include int main() { int n,i=1; double a,s=0; scanf("%d",&n); while(i<=n) { a=1.0/i; s+=a; i=i+1; } printf("%.6f\n",s); return 0; } 1099 分数数列求和(2) Description 输入一个正整数n,计算1+1/3+1/5….的前n项之和,输出时保留6位小数。 Input 输入正整数n(n<100) Output 输出前n项之和,保留6位小数。 Sample Input 2 Sample Output 1.333333 #include #include int main() { int n,i=1; double a,s=0; scanf("%d",&n); while(i<=(2*n-1)) { a=1.0/i; s+=a; i=i+2; } printf("%.6f\n",s); return 0; } 1100 分数数列求和(3) Description 输入一个正整数,计算1-1/2+1/4-1/8+1/16……的前n项之和,输出时保留2位小数。 Input 输入正整数n Output 输出前n项之和,保留2位小数。 Sample Input 5 Sample Output 0.69 #include #include int main() { int n,i=1,b; double a,c,s=0; scanf("%d",&n); while(i<=n) { if(i%2==0) b=-1; else b=1; c=pow(2,i-1); a=b*1.0/c; s+=a; i++; } printf("%.6f\n",s); return 0; } 1101 分数数列求和(4) Description 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,……,试编写程序计算此分数序列的前n项之和。 Input 输入正整数n Output 输出前n项之和,保留6位小数。 Sample Input 5 Sample Output 8.391667 #include #include int main() { int n,i=1,b=1,c=2,t; double a,s=0; scanf("%d",&n); while(i<=n) { a=c*1.0/b; s+=a; i++; t=c; c=b+c; b=t; } printf("%.6f\n",s); return 0; } 1102 分数数列求和(5) Description e=1+1/1!+1/2!+...+1/n!,从键盘输入n,计算e的值。 Input 输入一个整数n Output 输出e的值,保留6位小数。 Sample Input 5 Sample Output 2.716667 #include #include int main() { int i,n; double a,e=1,b=1; scanf("%d",&n); for(i=1;i<=n;i++) { b*=i; a=1.0/b; e+=a; } printf("%.6f\n",e); return 0; } 1103 混合数列求和 Description 有一数列:(1+2+...n)+(1^2+2^2+...+n^2)+(1+1/2+...+1/n) ,从键盘输入一个正整数n,计算该数列的结果。 Input 输入正整数n Output 输出数列的计算结果,保留2位小数。 Sample Input 5 Sample Output 72.28 #include #include int main() { int n,i=1; double a,b,c,e=0; scanf("%d",&n); while(i<=n) { a=i; b=pow(i,2); c=1.0/i; e=e+a+b+c; i++; } printf("%.6f\n",e); return 0; } 1104 计算n! Description 从键盘输入n,求n!的值并输出 Input 输入正整数n Output 输出n!的值。 Sample Input 5 Sample Output 120 #include #include int main() { int n,i=1,a,e=1; scanf("%d",&n); while(i<=n) { a=i; e=e*i; i++; } printf("%d\n",e); return 0; } 1105 求阶乘之和 Description 求1+2!+3!+...+n!的和 Input 输入一个整数n。 Output 输出1+2!+3!+...+n!的值。 Sample Input 5 Sample Output 153 #include #include int main() { int n,i=1,a,e=1,b=0; scanf("%d",&n); while(i<=n) { a=i; e=e*i; b+=e; i++; } printf("%d\n",b); return 0; } 1106 平均分及不及格人数 1000 Problem A Description 输入一个正整数n,再输入n个学生的成绩,计算平均分,并统计不及格同学的个数。 Input 输入一个正整数n表示学生的个数,再输入n个学生的成绩。 Output 输出分两行。 第一行输出平均分(保留1位小数)。 第二行输出不及格同学的个数。不及格人数为0时也要输出。 Sample Input 3 90 90 50 Sample Output 76.7 1 HINT Source NBU OJ #include void main() { int n,m=0,f,i=1; double sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&f); sum+=f; if(f<60) m++; } printf("%.1f\n",sum*1.0/n); printf("%d\n",m); } 1107 还是平均分 1001 Problem B Description 从键盘输入若干同学的成绩,计算他们的平均分。当输入负数时结束输入。 Input 输入若干整数,以负数作为结束标记。 Output 计算平均分(不包括负数),输出保留1位小数。 Sample Input 70 80 90 80 60 -9 Sample Output 76.0 HINT Source NBU OJ #include int main() { float sum=0,n; int i=0; do { scanf("%f",&n); if(n<0) break; sum+=n; i++; } while(1); printf("%.1f\n",sum/i); return 0; } 1108 百灯判熄 Description 有M盏灯,编号为1~M,分别由相应的M个开关控制。开始时全部开关朝上(朝上为开,灯亮),然后进行以下 操作:编号凡是1的倍数的灯反方向拨一次开关;是2的倍数的灯再反方向拨一次开关;是3的倍数的灯又反方 向拨一次开关,......,直到是M的倍数的灯又方向拨一次开关。请从键盘输入一个整数m代表灯的数量,求 出最后为熄灭状态的灯(不亮)的数量以及编号并输出。 Input 输入一个整数m(1<=n<=100)。 Output 输出为两行,第一行是熄灭状态的灯的数量;第二行是最后为熄灭状态的灯的编号(每个数据以4列的域宽显 示)。 Sample Input 100Sample Output 10 1 4 9 16 25 36 49 64 81 100 HINT 输出控制为%4d Source NBU OJ #include int main() { int j=0,i=1,n; scanf("%d",&n); while (i*i<=n) { j++; i++; } printf("%d\n",j); for (i=1;i<=j;i++) { printf("%4d",i*i); } printf("\n"); } 1109 斐波那契的兔子问题 Description 1202年,意大利数学家斐波那契(Fibonacci)出版了他的《计算之》,在书中提到了一个关于兔子繁殖的 问题:如果一对兔子,过一个月之后长成大兔子,到第三个月就可以生下一对兔子并且以后每个月都生下一 对兔子,而所生的一对小兔子也同样到一个月之后长成大兔子,到第三个月就可以生下一对小兔并且以后每 个月都会生一对。假如兔子都不死,问第n个月的时候兔子的总对数为多少? Input 输入一个整数n( 0 < n < =50) Output 输出第n个月兔子的对数 Sample Input 6Sample Output 8HINT 数据量会超出int范围,建议用double或长整型 Source NBU OJ #include #include #define ll __int64 ll a[51]; ll fun(int n) { if(n==1||n==2) return 1; if(!a[n]) a[n]=fun(n-1)+fun(n-2); return a[n]; } int main() { int n; memset(a,0,sizeof(a)); while(scanf("%d",&n)!=EOF) { printf("%I64d\n",fun(n)); } } 1110 斐波那契数列 Description 输入整数n,输出斐波那契数列的前n项。 Input 输入一个整数n(1<=n<=50)。 Output 输出斐波那契数列的前n项。以空格间隔,但最后一个数据的后面没有空格。 Sample Input 6Sample Output 1 1 2 3 5 8HINT 1、斐波那契数列的排列规则为:第1个数和第2个数的值都为1,从第3个数开始,每个数据都等于它前面相邻 的两个数据之和。 2、数据范围可能超出int,所以可考虑使用以下定义: __int64 a; /*64 位整数数据类型,表示介于-2^63 到2^63-1之间的数值*/ 则输入格式为 scanf("%I64d",&a); 输出格式为 printf("%I64d ",a); Source NBU OJ #include int main() { int n,i=1; double a=1,b=1; scanf("%d",&n); if(n==1) printf("1"); else if(n==2) printf("1 1"); else { printf("1 1"); for(i=3;i<=n;i++) { b=a+b; a=b-a; printf(" %.f",b); } } printf("\n"); return 0; } 1111统计素数 Description 判断[ k1,k2]之间有多少个素数(包含k1和k2),并输出这些素数。 ( 1 <= k1 < k2 <= 1000 ) Input 输入两个正整数k1和k2。 Output 输出两行信息,第一行是[k1,k2]之间素数个数,第二行输出所有素数。素数之间用空格分开。 Sample Input 1 10Sample Output 4 2 3 5 7HINT 最后一个素数的后面直接换行,不需要再加空格。 Source NBU OJ #include int main() { int x,y,i,a,t,d=0,v=0; scanf("%d%d",&x,&y); for(i=x;i<=y;i++) { t=0; for(a=1;a<=i;a++) { if(i%a==0) t++; } if(t==2) d++; } printf("%d\n",d); for(i=x;i<=y;i++) { t=0; for(a=1;a<=i;a++) { if(i%a==0) t++; } if(t==2) { v++; if(v void main() { int n,m=0,f,i=1; double sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&f); sum+=f; if(f<60) m++; } printf("%.1f\n",sum*1.0/n); printf("%d\n",m); } 1113 还是平均分 1001 Problem B Description 从键盘输入若干同学的成绩,计算他们的平均分。当输入负数时结束输入。 Input 输入若干整数,以负数作为结束标记。 Output 计算平均分(不包括负数),输出保留1位小数。 Sample Input 70 80 90 80 60 -9 Sample Output 76.0 HINT Source NBU OJ #include int main() { float sum=0,n; int i=0; do { scanf("%f",&n); if(n<0) break; sum+=n; i++; } while(1); printf("%.1f\n",sum/i); return 0; } 1114 百灯判熄 1002 Problem C Description 有M盏灯,编号为1~M,分别由相应的M个开关控制。开始时全部开关朝上(朝上为开,灯亮),然后进行以下操作:编号凡是1的倍数的灯反方向拨一次开关;是2的倍数的灯再反方向拨一次开关;是3的倍数的灯又反方向拨一次开关,......,直到是M的倍数的灯又方向拨一次开关。请从键盘输入一个整数m代表灯的数量,求出最后为熄灭状态的灯(不亮)的数量以及编号并输出。 Input 输入一个整数m(1<=n<=100)。 Output 输出为两行,第一行是熄灭状态的灯的数量;第二行是最后为熄灭状态的灯的编号(每个数据以4列的域宽显示)。 Sample Input 100Sample Output 10 1 4 9 16 25 36 49 64 81 100 HINT 输出控制为%4d Source NBU OJ #include int main() { int j=0,i=1,n; scanf("%d",&n); while (i*i<=n) { j++; i++; } printf("%d\n",j); for (i=1;i<=j;i++) { printf("%4d",i*i); } printf("\n"); } 1115 斐波那契的兔子问题 Description 1202年,意大利数学家斐波那契(Fibonacci)出版了他的《计算之书》,在书中提到了一个关于兔子繁殖的问题:如果一对兔子,过一个月之后长成大兔子,到第三个月就可以生下一对兔子并且以后每个月都生下一对兔子,而所生的一对小兔子也同样到一个月之后长成大兔子,到第三个月就可以生下一对小兔并且以后每个月都会生一对。假如兔子都不死,问第n个月的时候兔子的总对数为多少? Input 输入一个整数n( 0 < n < =50) Output 输出第n个月兔子的对数 Sample Input 6Sample Output 8HINT 数据量会超出int范围,建议用double或长整型 Source NBU OJ #include #include #define ll __int64 ll a[51]; ll fun(int n) { if(n==1||n==2) return 1; if(!a[n]) a[n]=fun(n-1)+fun(n-2); return a[n]; } int main() { int n; memset(a,0,sizeof(a)); while(scanf("%d",&n)!=EOF) { printf("%I64d\n",fun(n)); } } 1116 斐波那契数列 Description 输入整数n,输出斐波那契数列的前n项。 Input 输入一个整数n(1<=n<=50)。 Output 输出斐波那契数列的前n项。以空格间隔,但最后一个数据的后面没有空格。 Sample Input 6Sample Output 1 1 2 3 5 8HINT 1、斐波那契数列的排列规则为:第1个数和第2个数的值都为1,从第3个数开始,每个数据都等于它前面相邻的两个数据之和。 2、数据范围可能超出int,所以可考虑使用以下定义: __int64 a; /*64 位整数数据类型,表示介于-2^63 到2^63-1之间的数值*/ 则输入格式为 scanf("%I64d",&a); 输出格式为 printf("%I64d ",a); Source NBU OJ #include int main() { int n,i=1; double a=1,b=1; scanf("%d",&n); if(n==1) printf("1"); else if(n==2) printf("1 1"); else { printf("1 1"); for(i=3;i<=n;i++) { b=a+b; a=b-a; printf(" %.f",b); } } printf("\n"); return 0; } 117 统计素数 Description 判断[ k1,k2]之间有多少个素数(包含k1和k2),并输出这些素数。 ( 1 <= k1 < k2 <= 1000 ) Input 输入两个正整数k1和k2。 Output 输出两行信息,第一行是[k1,k2]之间素数个数,第二行输出所有素数。素数之间用空格分开。 Sample Input 1 10Sample Output 4 2 3 5 7HINT 最后一个素数的后面直接换行,不需要再加空格。 Source NBU OJ #include int main() { int x,y,i,a,t,d=0,v=0; scanf("%d%d",&x,&y); for(i=x;i<=y;i++) { t=0; for(a=1;a<=i;a++) { if(i%a==0) t++; } if(t==2) d++; } printf("%d\n",d); for(i=x;i<=y;i++) { t=0; for(a=1;a<=i;a++) { if(i%a==0) t++; } if(t==2) { v++; if(v int main() { int a[10],i,j; int minloc,temp; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) {minloc=i; for(j=i+1;j<10;j++) if(a[j]=1;i--) printf("%d ",a[i]); printf("%d\n",a[0]); return 0; } 1119 Problem J Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 64 | Solved : 48 Description 已知有10个同学的成绩,求最高分和最低分以及相应分数所在的位置。从键盘输入10个整数存放在数组中,假设这10个数互不相同,且无序排列。请找出其中最大数及它在数组中的下标,以及最小数和下标。 Input 从键盘输入10个整数。 Output 找出其中最大数及它在数组中的下标,以及最小数和下标。各占一行。 Sample Input 60 70 90 50 65 76 88 95 91 80Sample Output 95 7 50 3HINT Source NBU OJ #include #define N 10 int main() {int a[N]; int i,min,max,minloc,maxloc; for(i=0;ia[i]) {min=a[i];minloc=i;} if(max int main() {int a[10]; int i; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=9;i>=1;i--) printf("%d ",a[i]); printf("%d",a[0]); printf("\n"); return 0; } 1121 Problem G Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 126 | Solved : 44 Description 有5个整型数据存储在数组中,再输入一个数值key,删除数组中第1个等于key的元素,并将剩余的4个数据输出。如果key不是数组中的元素,则显示not found。 Input 先从键盘输入5个整数,然后再输入一个待删除的数据key。 Output 输出删除后的结果,若不存在则输出not found。输出的每个数据后面到底有没有空格呢?其实没有。。 Sample Input 80 65 93 100 81 93Sample Output 80 65 100 81 HINT Source NBU OJ #include void main() { int a[5]; int i,k,key,flag=0; for(i=0;i<5;i++) scanf("%d",&a[i]); scanf("%d",&key); for(i=0;i<5;i++) { if(key==a[i]) { flag=1; for(k=i;k<4;k++) a[k]=a[k+1]; } } if(flag==1) for(i=0;i<4;i++) printf("%d%c",a[i],i==3?'\n':' '); else printf("not found\n"); } 1122 Problem F Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 69 | Solved : 54 Description 从键盘输入任意的10个整数,从中找出最大值和最小值并输出。 Input 输入任意的10个整数。 Output 输出这10个数中的最大值和最小值。各占一行。 Sample Input 1 2 5 4 7 8 3 54 13 20Sample Output 54 1 HINT Source NBU OJ #include int main() { int a[10],i; int min,max; for(i=0;i<10;i++) scanf("%d",&a[i]); min=max=a[0]; for(i=0;i<10;i++) {if(min>a[i]) min=a[i]; if(max int main() {int i, a[4],sum; sum=0;double ave; for(i=0;i<4;i++) { scanf("%d",&a[i]); sum=sum+a[i];} ave=sum/4.0; printf("%.1lf\n",ave); return 0; } 1124 Problem D Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 50 | Solved : 39 Description 有一个3*4的矩阵,要求编程求出其中值最大的那个元素,以及其所在的行号和列号。(如果最大数有多个,则显示第1个出现的数据的信息) Input 从键盘输入12个数字组成一个3*4的矩阵。 Output 输出矩阵中最大值,以及其所在的行号和列号。如有多个最大值,则显示第1个出现的。 Sample Input 1 2 9 3 5 3 4 2 0 6 9 1Sample Output 9 0 2HINT Source NBU OJ #include void main() { int a[3][4],max=0; int i,j,row,column; for(i=0;i<3;i++) for(j=0;j<4;j++) { scanf("%d",&a[i][j]); if(max void main() { int a[3][3]; int i,j,k=0; double sum=0,ave,b[3]; for(i=0;i<3;i++) { for(j=0;j<3;j++) { scanf("%d",&a[i][j]); sum += a[i][j]; } ave = sum/j; b[k++] = ave; sum=ave=0; } for(i=0;i<3;i++) printf("%.1lf\n",b[i]); } 1126 Problem C Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 65 | Solved : 41 Description 从键盘输入数值,构成一个3行4列的二维整型数组,对每个元素执行加1操作,然后输出该数组的内容。 Input 输入3行4列的二维数组。 Output 按行列形式输出操作后的数组。 Sample Input 1 2 3 4 5 6 7 8 9 10 11 12Sample Output 2 3 4 5 6 7 8 9 10 11 12 13 HINT Source NBU OJ #include void main() { int a[3][4]; int i,j; for(i=0;i<3;i++) for(j=0;j<4;j++) { scanf("%d",&a[i][j]); a[i][j] += 1; } for(i=0;i<3;i++) { for(j=0;j<4;j++) printf("%d ",a[i][j]); printf("\n"); } } 1127 Problem A Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 54 | Solved : 42 Description 输入m行n列的二维数组的值,再按行列形式输出。 Input 第一行输入m,n代表行数和列数。接着输入具体的m*n个元素。 Output 按行列形式换行输出。每一个数据后面都有空格,一行输出完毕后换行。 Sample Input 2 5 1 4 6 23 1 1 -5 2 4 6Sample Output 1 4 6 23 1 1 -5 2 4 6HINT Source NBU OJ #include void main() { int m,n,i,j; int num[100][100]; scanf("%d%d",&m,&n); for(i=0;i int main() { int C[1000],i,sum=0; for(i=0;;i++) { scanf("%d",&C[i]); if(C[i]<0) break; else sum+=C[i]; } printf("%.1lf\n",sum/(i*1.0)); return 0; } 1129 Problem C Description 杨辉三角的历史悠久,是我国古代数学家杨辉揭示二项展开式各项的系数的数字三角形。 从键盘输入一个整数n,输出如下所示的n行的杨辉三角形。下图是n为5时的杨辉三角形。 Input 输入一个整数n。(1<=n<=15)。 Output 输出n行的杨辉三角形。 Sample Input 5 Sample Output 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 HINT 每一个数据的后面都有空格。 Source NBU OJ #include #define N 100 int main() { int j,i,c; scanf("%d",&c); int a[N][N]; for(i=0;i int main() { int number=0,i,isword=0; char str[1000]; char ch; gets(str); for(i=0;str[i]!='\0';i++) { ch=str[i]; if(ch==' ') isword=0; else if(isword==0) { isword=1;number++; } } printf("%d\n",number); return 0; } 1131 Problem A Description 输入一个正整数n,再输入n个学生的成绩,计算平均分,并统计不及格同学的个数。 Input 输入一个正整数n表示学生的个数,再输入n个学生的成绩。 Output 输出分两行。 第一行输出平均分(保留1位小数)。 第二行输出不及格同学的个数。不及格人数为0时也要输出。 Sample Input 3 90 90 50 Sample Output 76.7 1 HINT 学生成绩可能带小数 Source NBU OJ 1000 #include #define n 1000 void main() { double a[n],s=0,t; int i,x,y=0; scanf("%d",&x); for(i=0;i #define n 3 #define m 4 void main() { int f[3][4],i,j,t; for(i=0;it) t=f[i][j]; } printf("%d\n",t); } } 1133 Problem H Description 有一个长度为n数组,需要将数组中从指定位置m开始的k个元素倒放在原来的数组中。 Input 第一行输入n,m,k (1<=n<=50)。  第二行输入数组中的n个数。 m代表元素的实际位置而不是在数组中的下标值。 Output 输出倒置后的数组。 Sample Input 13 3 11 1 2 3 4 5 6 7 8 9 10 11 12 13 Sample Output 1 2 13 12 11 10 9 8 7 6 5 4 3 HINT 最后一个数据的后面直接换行。 Source NBU OJ 1007 #include #define N 50 void main() { int f[N],j,n,i,y,m,k,t=0; scanf("%d%d%d",&n,&m,&k); for(i=0;i #define n 1000 void main() { double a[n]; int i,x; scanf("%d",&x); if(x<=1) a[0]=a[1]=1; else { a[0]=a[1]=1; for(i=2;i int main() { int x,y,i,a,t,d=0,v=0; scanf("%d%d",&x,&y); for (i=x;i<=y;i++) { t=0; for(a=1;a<=i;a++) { if(i%a==0) t++; } if(t==2) d++; } printf("%d\n",d); for(i=x;i<=y;i++) { t=0; for(a=1;a<=i;a++) { if(i%a==0) t++; } if(t==2) { v++; if(v void main() { int f[10],i,x,c=0; for(i=0;i<10;i++) scanf("%d",&f[i]); scanf("%d",&x); for(i=0;i<10;i++) { if(x==f[i]) {printf("%d\n",i); break;} else c++; } if(c==10) printf("not found\n"); } 1012 #include #define N 11 void main() { int f[N],i,j,a; for(i=0;i<10;i++) scanf("%d",&f[i]); scanf("%d",&a); for(i=0;i=i;j--) f[j+1]=f[j]; f[i]=a; } for(i=0;i void main() { int f[10],i,x,c=0; for(i=0;i<10;i++) scanf("%d",&f[i]); scanf("%d",&x); for(i=0;i<10;i++) { if(x==f[i]) {printf("%d\n",i); break;} else c++; } if(c==10) printf("not found\n"); } 1138 Problem O Description 找出一个2维数组矩阵的鞍点,即该位置上的元素在该行中最大,在该列中最小,可能不存在鞍点,如果存在多个,输出最小的那个! Input 输入 n,m表示二维矩阵的行数和列数,然后根据行列数输入n*m个数据构成一个二维矩阵。 Output 如果存在鞍点,则输出该鞍点的值,如果不存在则输出not exist。 Sample Input 4 5 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 Sample Output 5 HINT Source NBU OJ 1014 #include int main() { int a[100][100],row,col; int i,j,k,max,maxj,flag1=1,flag2; scanf("%d%d",&row,&col); for(i=0;ia[k][maxj]) flag1=0;if(flag1) { printf("%d\n",max); flag2=1;} } if(flag2==0) printf("not exist\n");}
/
本文档为【宁波大学OJ系统C语言题目及参考答案精讲】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索