-
对于任一整数n,符号函数的定义如下:
请编写程序计算该函数对任一输入整数的值。
#include<stdio.h> #include<math.h> int main(void) { int n,y; scanf("%d",&n); if(n < 0){ y = -1; }else if(n > 0){ y = 1; }else{ y = 0; } printf("sign(%d) = %d",n,y); return 0; }
-
本题要求编写程序,输入N个学生的MOOC成绩,统计优秀、合格证书的数量,以及没有获得证书的数量。学生修读程序设计MOOC,
85
分及以上获得优秀证书,不到85
分但是60
分及以上获得合格证书,不到60
分则没有证书。输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。在一行中依次输出优秀证书、合格证书、没有获得证书的数量,中间以空格分隔。请注意,最后一个数字后没有空格。#include<stdio.h> #include<math.h> int main(void) { int count_nice,count_good,count_failure,i,n; double score,total; scanf("%d",&n); total=0; count_nice=0; count_good=0; count_failure=0; for(i=1;i<=n;i++){ scanf("%lf",&score); total=total+score; if(score<60){ count_failure++; }else if(score>=60&&score<85){ count_good++; }else{ count_nice++; } } printf("%d %d %d",count_nice,count_good,count_failure); return 0; }
-
输入三个数(中间用空格相隔)比较大小。在一行中将3个整数从小到大输出,其间以“->”相连。
#include<stdio.h> int main(void) { int a,b,c,i,n; scanf("%d %d %d",&a,&b,&c); if(a<b&&b<c){ printf("%d->%d->%d",a,b,c); }else if(a<c&&c<b){ printf("%d->%d->%d",a,c,b); }else if(b<a&&a<c){ printf("%d->%d->%d",b,a,c); }else if(b<c&&c<a){ printf("%d->%d->%d",b,c,a); }else if(c<a&&a<b){ printf("%d->%d->%d",c,a,b); }else{ printf("%d->%d->%d",c,b,a); } return 0; }
#include<stdio.h> int main(void) { int x,y,z; int a,b,c; scanf("%d %d %d",&a,&b,&c); if(x>y){ if(z>x){ a=z; b=x; c=y;} else if(z>y){ a=x; b=z; c=y;} else{ a=x; b=y; c=z;} }else{ if(z>y){ a=z; b=y; c=x;} else if(z>x){ a=y; b=z; c=x;} else{ a=y; b=x; c=z;} } printf("%d-<%d-<%d",c,b,a); return 0; }
-
中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
#include<stdio.h> #include<math.h> int main(void) { int n,i; scanf("%d",&n); for(i=1;i<=1;i++){ if(n%5==0||n%5==4){ printf("Drying in day %d",n); }else { printf("Fishing in day %d",n); } } return 0; }
-
现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。
本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助),计算并输出应付款。输入在一行中给出两个整数和一个字符,分别表示顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助)。在一行中输出应付款额,保留小数点后2位。
#include<stdio.h> int main(void) { int a,b; char ch; double price; scanf("%d %d %c",&a,&b,&ch); if(b == 90){ if(ch == 'm'){ price = a * 6.95 * 0.95; printf("%.2lf",price); }else{ price = a * 6.95 * 0.97; printf("%.2lf",price); } }else if(b == 93){ if(ch == 'm'){ price = a * 7.44 * 0.95; printf("%.2lf",price); }else{ price = a * 7.44 * 0.97; printf("%.2lf",price); } }else{ if(ch == 'm'){ price = a * 7.93 * 0.95; printf("%.2lf",price); }else{ price = a * 7.93 * 0.97; printf("%.2lf",price); } } return 0; }
-
每个箱子都有长宽高,我们需要判断一个箱子能否放入另一个箱子中。
例如有箱子A的尺寸是 3 x 4 x 5,箱子B的尺寸 是 5 x 6 x 4,经过比较判断,可以知道箱子A能够放入箱子B中,我们就说箱子A匹配箱子B。
注意,当两个箱子尺寸相等,我们也认为它们匹配。
第一行输入参数T,表示有T个测试实例
第二行输入第1组实例的箱子A的长、宽、高,输入数值为小于1000的自然数
第三行输入第1组实例的箱子B的长、宽、高,输入数值为小于1000的自然数
以此类推。如果两个箱子匹配,输出yes,否则输出no。逐行输出每一组的箱子匹配结果。
#include<stdio.h> int main() { int x,y,z; int m,k,l; int a,b,c; int d,e,f; int i,T; scanf("%d",&T); for(i=1;i<=T;i++){ scanf("%d %d %d",&x,&y,&z); scanf("%d %d %d",&m,&k,&l); if(x>y&&y>z){ a=x; b=y; c=z; }else if(z>x&&x>y){ a=z; b=x; c=y; }else if(x>z&&z>y){ a=x; b=z; c=y; }else if(z>y&&y>x){ a=z; b=y; c=x; }else if(y>z&&z>x){ a=y; b=z; c=x; }else if(y>x&&x>z){ a=y; b=x; c=z; } if(m>k&&k>l){ d=m; e=k; f=l; }else if(l>=m&&m>k){ d=l; e=m; f=k; }else if(m>=l&&l>k){ d=m; e=l; f=k; }else if(l>k&&k>m){ d=l; e=k; f=m; }else if(k>l&&l>=m){ d=k; e=l; f=m; }else if(k>m&&m>=l){ d=k; e=m; f=l; } if((a<=d&&b<=e&&c<=f)||(a>=d&&b>=e&&c>=f)){ printf("yes\n"); }else{ printf("no\n"); } } return 0; }
总结
- 学会如何分类统计数据数量
- 学会如何比较输入数据大小并按大小输出
- 学会判断条件数字
- 如何输入scanf("%c",ch)输出判断字符形式以及设字符(char ch)
- 多重条件判断数据