1、输入三个正整数,判断用这三个整数做边长是否能构成一个直角三角形。
输入
输入三个正整数。
输出
能否构成直角三角形。如能输出:yes.若不能,输出:no。
样例输入
6 8 10
样例输出
yes
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(a*a+b*b==c*c||c*c+a*a==b*b||c*c+b*b==a*a) printf("yes");
else printf("no");
return 0;
}
2、给你三个正整数,判断用这三个整数做边长是否能构成一个三角形。
输入
输入为三个正整数(32-int),中间有一个空格隔开。
输出
如果能构成三角形,输出"Yes",否则输出"No"
样例输入
3 4 5
样例输出
Yes
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a) printf("Yes");
else printf("No");
return 0;
}
3、给出三个整数,分别表示等差数列的第一项、最后一项和公差,求该数列的和。
输入
输入三个整数,之间用空格隔开。第1个数作为首项,第2个数作为末项,第3个数作为公差.
输出
输出占一行,包含一个整数,为该等差数列的和。
样例输入
2 11 3
样例输出
26
#include<stdio.h>
int main()
{
int a,b,c,Sn,n;
scanf("%d %d %d",&a,&b,&c);
n=(b-a+c)/c;
Sn=(n*(a+b))/2;
printf("%d",Sn);
return 0;
}
4、输入x,计算正弦函数。结果保留三位小数
输入
输入一个实数x。
输出
输出一个实数,结果保留3位小数。
样例输入
1
样例输出
0.841
#include<stdio.h>
#include<math.h>
int main()
{
double x,y;
scanf("%lf",&x);
y=sin(x);
printf("%.3lf",y);
return 0;
}
5、输入一个整数n和n个整数,输出这n个整数的和。
输入
输入有两行:第一行是一个正整数n,第二行是n个整数。
输出
输出一个整数,即n个数的和。输出单独占一行。
样例输入
3
7 3 2
样例输出
12
#include<stdio.h>
int main()
{
int s=0,n,a,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a);
s=s+a;
}
printf("%d",s);
return 0;
}
6、已知:y是x的函数,
当x<-2时,y=7-2x;
当x>=-2,且x<3时,y=5-|3x+2|;
当x>=3时,y=3x+4
输入
任意输入一个整数x。
输出
输出为一个整数,即x对应的函数值。
样例输入
2
样例输出
-3
#include<stdio.h>
#include<math.h>
int main()
{
int x,y;
scanf("%d",&x);
if(x<-2)
{
y=7-2*x;
printf("%d",y);
}
if(x>=-2&&x<3)
{
y=5-fabs(3*x+2);
printf("%d",y);
}
if(x>=3)
{
y=3*x+4;
printf("%d",y);
}
return 0;
}
7、输入一个整数n,输出数列1+1/3+1/5+……前n项的和。
输入
输入只有一个正整数n。
输出
结果保留2为小数,单独占一行
样例输入
3
样例输出
1.53
#include<stdio.h>
int main()
{
int n,i;
double y=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
y=y+1.0/(2*i-1);
}
printf("%.2lf",y);
return 0;
}
8、要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。因此,"China"应译为"Glmre"。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。
输入
China
输出
加密后的China
样例输入
China
样例输出
Glmre
#include<stdio.h>
int main()
{
char c1,c2,c3,c4,c5;
c1='C';c2='h';c3='i';c4='n';c5='a';
c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;
printf("%c%c%c%c%c",c1,c2,c3,c4,c5);
return 0;
}
9、计算A+B
输入
输入第1行为一个整数n(1≤n≤10),代表测试的组数。
下面有n组测试数据,每组1行,为2个整数,为A, B。
输出
对每行输入,输出A+B的值,单独占一行。
样例输入
2
1 2
3 4
样例输出
3
7
#include"stdio.h"
int main()
{
int a,b,n,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
}
return 0;
}
10、悟空第一天摘下桃子若干,当即吃掉一半,还不过瘾,又多吃一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?
输入
输入一个数n(1<=n<=30)。
输出
输出第一天的桃子个数。
样例输入
3
样例输出
10
#include<stdio.h>
int main()
{
int n,i,x,y;
scanf("%d",&n);
for(i=1,x=1;i<=n-1;i++)
{
y=(x+1)*2;
x=y;
}
printf("%d",y);
return 0;
}
11、某公园门票的票价是每人50元,一次购票满30张,每张可以少收2元。试编写自动计费系统程序。
输入
输入一个正整数,表示购票的数量。
输出
输出一个实数,表示用户实际需要支付的金额,保留两位小数。
样例输入
30
样例输出
1440.00
#include<stdio.h>
int main()
{
int n,m=50;
float v;
scanf("%d",&n);
if(n<30)
{
v=m*n;
printf("%.2f",v);
}
if(n>=30)
{
v=n*(m-2);
printf("%.2f",v);
}
return 0;
}
12、商场夏季促销,购物500元以下,不打折;购物500元(含)以上,95折;购物1000元(含)以上,9折;购物3000元(含)以上,85折;购物5000元(含)以上,8折。根据消费金额,确定用户实际需要支付的数目。
输入
输入一个实数,表示消费金额。
输出
输出一个实数,表示用户实际需要支出的数目,保留两位小数。
样例输入
5100
样例输出
4080.00
#include<stdio.h>
int main()
{
int a;
float b;
scanf("%d",&a);
if(a<500)
{
b=a;
printf("%.2f",b);
}
if(a>=500&&a<1000)
{
b=0.95*a;
printf("%.2f",b);
}
if(a>=1000&&a<3000)
{
b=0.9*a;
printf("%.2f",b);
}
if(a>=3000&&a<5000)
{
b=0.85*a;
printf("%.2f",b);
}
if(a>=5000)
{
b=0.8*a;
printf("%.2f",b);
}
return 0;
}
13、给定一个百分制成绩, 请根据百分制成绩输出其对应的等级。转换关系如下:
90分以上为’A’,80~89为’B’, 70~79为’C’, 60~69为’D’,60分以下为’E’。
输入
一个百分制成绩(0~100的整数)。
输出
输出对应的等级
样例输入
100
样例输出
A
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
switch (n/10)
{
case 10: printf("A\n"); break;
case 9: printf("A\n"); break;
case 8: printf("B\n"); break;
case 7: printf("C\n"); break;
case 6: printf("D\n"); break;
default: printf("E\n");
}
return 0;
}
14、将三个整数从大到小排列。
输入
输入三个整数:x,y,z
输出
从大到小输出。
#include<stdio.h>
int main()
{
int x,y,z,t;
scanf("%d %d %d",&x,&y,&z);
if(x<y)
{
t=x,x=y,y=t;
}
if(x<z)
{
t=x,x=z,z=t;
}
if(z>y)
{
t=y,y=z,z=t;
}
printf("%d %d %d",x,y,z);
return 0;
}
15、给出三角形的三条边,求三角形的面积。
输入
输入三角形的三条边长(实数),数据之间用空格隔开。
输出
输出三角形的面积,结果保留2位小数。
样例输入
2.5 4 5
样例输出
4.95
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c,s,m;
scanf("%f %f %f",&a,&b,&c);
s=0.5*(a+b+c);
m=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%.2f",m);
return 0;
}
16、有一天橘子想吃水饺。就与花妈一同去买了许多水饺。到了要吃的时候,因为柚子也要一起吃,而且为了公平起见,希望吃的一样多,所以就准备三个盘子,然后,所以把所有的水饺,平均的分配在这三个盘子里,可是:因为买的是20个。所以最后,每盘装了6个,而且最后会剩下2个。
就在准备开始享用的时候,柚子提出一个问题:如果买的是10个水饺,那每个盘子放几个水饺?又会剩几个呢?接着又问:如果买的是n个水饺,每个放几个?又会剩几个?
此时的橘子很想赶快吃到水饺。聪明的你,请快点帮忙橘子解决这个问题。
输入
有多组数据,每组数据有一个大于或等于0的整数数字,代表花妈买水饺的数量N( 0<=N <=10)。
输出
每个样本就一行输出,请依题意先输出每盘数量,再输出一个逗号”,”后,再输出最后所剩的数量。
样例输入
10
样例输出
3,1
#include<stdio.h>
int main()
{
int n,a,b;
while(scanf("%d",&n)!=EOF)
{
a=n/3;
b=n%3;
printf("%d,%d\n",a,b);
}
return 0;
}
17、已知两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。(求多组数据)
输入
输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。
输出
对于每组输入数据,输出一行,结果保留两位小数。
样例输入
0 0 0 1
0 1 1 0
样例输出
1.00
1.41
#include<stdio.h>
#include<math.h>
int main()
{
double x1,y1,x2,y2,d;
while(scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2)!=EOF)
{
d=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
printf("%.2lf\n",d);
}
return 0;
}
18、输入一个整数n,输出数列1-1/3+1/5-……前n项的和。
输入
输入只有一个整数n。
输出
结果保留2为小数,单独占一行。
样例输入
3
样例输出
0.87
#include<stdio.h>
#include<math.h>
int main()
{
int n,i;
double y=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
y=y+pow(-1.0,i-1)/(2*i-1);
}
printf("%.2lf",y);
return 0;
}
19、输入一个英文字母(可能是大写,也可能是小写),输出该字母在字母表中的序号(’a’和’A’的序号为1)。
输入
输入只有一个英文字母。
输出
输出一个整数,表示该字母在字母表的序号,输出单独占一行。
样例输入
D
样例输出
4
#include<stdio.h>
int main()
{
char x;
scanf("%c",&x);
if(x>='a'&&x<='z')
printf("%d\n",x-96);
else if(x>='A'&&x<='Z')
printf("%d\n",x-64);
else printf("*");
return 0;
}
20、输入n和n个学生成绩(实数),输出不及格率。
输入
输入的第一行是一个整数n,第二行是n个实数,用空格隔开。
输出
输出一个实数,表示不及格率,结果保留2位小数,单独占一行。
样例输入
8
98 45 86 79 56 75 90 70
样例输出
0.25
(注意,不及格率为0时,输出0.00)
#include<stdio.h>
int main()
{
int n,i;
double a[1000];
int b=0;
scanf("%d",&n);
for(i=0;i<n;++i)
{
scanf("%lf",&a[i]);
if(a[i]<60)
{
b++;
}
}
printf("%.2f\n",b*1.0/n);
return 0;
}
21、输入一个整数n和n个整数,输出这n个整数的最大值。
输入
输入有两行:第一行是一个正整数n,第二行是n个整数。
输出
输出包含一个整数,即n个数中的最大值,单独占一行。
样例输入
4
3 7 5 6
样例输出
7
#include<stdio.h>
int main()
{
int n,a,i,max;
scanf("%d %d",&n,&a);
max=a;
for(i=1;i<=n-1;i++)
{
scanf("%d",&a);
if(a>max)
{
max=a;
}
}
printf("%d",max);
return 0;
}
22、求奇数的乘积(多实例测试)
给你n个整数,求他们中所有奇数的乘积
输入
输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。
输出
输出每组数中的所有奇数的乘积,对于测试实例,输出一行。
样例输入
3 1 2 3
4 2 3 4 5
样例输出
3
15
#include<stdio.h>
int main()
{
int a,c=1,n,i;
while(scanf("%d",&n)!=EOF)
{
c=1;
for(i=1;i<=n;i++)
{
scanf("%d",&a);
if(a%2==1||(-a)%2==1)
{
c*=a;
}
}
printf("%d\n",c);
}
return 0;
}
23、打印九九乘法表
输入
无
输出
9X9乘法表
样例输出
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
#include<stdio.h>
int main()
{
int k,j,m;
for(k=1;k<=9;k++)
{
for(j=1;j<=k;j++)
{
m=k*j;
printf("%d*%d=%-4d",k,j,m);
}
printf("\n");
}
return 0;
}
24、输入两个正整数m和n,求其最大公约数和最小公倍数。
输入
两个整数
输出
最大公约数,最小公倍数
样例输入
5 7
样例输出
1 35
提示
#include<stdio.h>
int main()
{
int a,m,n;
scanf("%d %d",&m,&n);
for(a=n;a>=1&&a<=n;a--)
if((m%a==0)&&(n%a==0))break;
printf("%d ",a);
printf("%d",m*n/a);
return 0;
}
25、打印图形
编写程序输出一下图形:
*
**
***
****
*****
******
*******
输入
输出
*
**
***
****
*****
******
*******
样例输出
*
**
***
****
*****
******
*******
#include<stdio.h>
int main()
{
int i,j;
for(i=1;i<=7;i++)
{
for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
return 0;
}
26、给你一个年份和月份,求该月有多少天
输入
一个年份(正整数),一个月份(1-12),中间有一个空格隔开
输出
该月的天数,单独占一行。
样例输入
2012 2
样例输出
29
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d%d",&a,&b);
if(b==1||b==3||b==5||b==7||b==8||b==10||b==12)
c=31;
else if(b==4||b==6||b==9||b==11)
c=30;
else
{
if(a%4==0)
{
if(a%100==0&&a%400!=0)
c=28;
else
c=29;
}else
c=28;
}
printf("%d",c);
return 0;
}
27、统计给定的n个数中,负数、零和正数的个数。
输入
输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个实数;如果n=0,则表示输入结束,该行不做处理。
输出
对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。
6 0 1 2 3 -1 0
5 1 2 3 4 0.5
0
例样输出
1 2 3
0 0 5
#include<stdio.h>
int main()
{
int n,i,d=0,e=0,f=0;
double a;
while(scanf("%d",&n)!=EOF)
{
d=0,e=0,f=0;
if(n==0)break;
for(i=1;i<=n;i++)
{
scanf("%lf",&a);
if(a<0)
{
d=d+1;
//printf("%d\n",d);
}
else if(a==0)
{
e=e+1;
// printf("%d\n",e);
}
else if(a>0)
{
f=f+1;
// printf("%d",f);
}
// printf("%d %d %d\n",d,e,f);
}
printf("%d %d %d\n",d,e,f);
}
return 0;
28、用筛法求之N内的素数。
输入
N
输出
0~N的素数
样例输入
100
样例输出
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
#include <stdio.h>
int main()
{
int a,i,n;
scanf("%d",&n);
for (a=2;a<=n;a++)
{
for (i=2;i<a;i++)
{
if (a%i==0)
break;
}
if(i==a)
printf("%d\n",a);
}
printf("\n");
return 0;
}
29、n到m求和
输入
输出
样例输入
1 5
2 9
样例输出
15
44
#include<stdio.h>
int main()
{
int i,m,n,sum;
while(scanf("%d %d",&n,&m)!=EOF)
{
sum=0;
for(i=n;i<=m;i++)
{
// s=0;
sum=sum+i;
}
printf("%d\n",sum);
}
return 0;
}
30、给你一个具体的日期,计算该日期是该年的第几天。
输入
输入一个日期,格式为:Year-month-day。year是小于9999的正整数。
输出
一个整数,表示该日期是该年的第几天。
样例输入
2012-3-1
样例输出
61
#include<stdio.h>
int main()
{
int year,moth,day;;
int mo[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int d,i;
scanf("%d-%d-%d",&year,&moth,&day);
d=day;
if(year%400==0||(year%4==0&&year%100!=0))
mo[1]=29;
for(i=0;i<moth-1;i++)
d+=mo[i];
printf("%d",d);
}
31、用选择法对10个整数从小到大排序。
输入
10个整数
输出
排序好的10个整数
样例输入
4 85 3 234 45 345 345 122 30 12
样例输出
3
4
12
30
45
85
122
234
345
345
#include<stdio.h>
main()
{
int a[10],i,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
if (a[i]>a[j]) {
t=a[i];
a[i]=a[j];
a[j]=t; }
for(i=0;i<10;i++)
printf("%d\n",a[i]);
return 0;
}
32、一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数
输入
M N
输出
它在第N次落地时反弹多高?共经过多少米? 保留两位小数,空格隔开,放在一行
样例输入
1000 5
样例输出
31.25 2875.00
#include<stdio.h>
int main()
{
double M,N,i,h,t,Sn;
scanf("%lf %lf",&M,&N);
h=M/2;
Sn=M;
for(i=2;i<=N;i++)
{
t=M/2;
h=t/2;
Sn=Sn+t*2;
M=t;
}
printf("%.2lf %.2lf",h,Sn);
return 0;
}
33、已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。
现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。
输入
输入 k
输出
屏幕输出 n
样例输入
1
样例输出
2
#include<stdio.h>
int main()
{
int k,i;double sn=0.0;
scanf("%d",&k);
for(i=1;sn<=k;i++)
{
sn=sn+1.0/i;
}
printf("%d",i-1);
return 0;
}
34、猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。
输入
N
输出
桃子总数
样例输入
10
样例输出
1534
#include<stdio.h>
int main()
{
int n,i,a,b;
scanf("%d",&n);
for(i=1,a=1;i<=n-1;i++)
{
b=(a+1)*2;
a=b;
}
printf("%d",b);
return 0;
}