宁波大学OJ系统C语言题目及参考
答案
八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案
精讲
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,
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示有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");}