task1_1.c
1 #include<stdio.h> 2 int main() 3 { 4 printf(" O \n"); 5 printf("<H>\n"); 6 printf("I I\n"); 7 printf(" O \n"); 8 printf("<H>\n"); 9 printf("I I\n"); 10 return 0; 11 }
task1_2.c
1 #include<stdio.h> 2 int main() 3 { 4 printf(" O \t O\n"); 5 printf("<H>\t<H>\n"); 6 printf("I I\tI I\n"); 7 return 0; 8 }
task2.c
1 #include<stdio.h> 2 int main() 3 { 4 float a,b,c; 5 scanf("%f%f%f",&a,&b,&c); 6 if(a+b>c && a+c>b && b+c>a) 7 printf("能构成三角形\n"); 8 else 9 printf("不能构成三角形\n"); 10 return 0; 11 }
task3.c
1 #include<stdio.h> 2 int main() 3 { 4 char ans1,ans2; 5 printf("每次课前认真预习、课后及时复习了没?(输入y或Y表示有,输入n或N表示没有):"); 6 ans1=getchar(); 7 getchar(); 8 printf("\n动手敲代码实践了没?(输入y或Y表示敲了,输入n或N表示木有敲):"); 9 ans2=getchar(); 10 if((ans1=='y'||ans1=='Y')&&(ans2=='y'||ans2=='Y')) 11 printf("\n罗马不是一天建成的,继续保持哦:)\n"); 12 else 13 printf("\n罗马不是一天毁灭的,我们来建设吧"); 14 return 0; 15 }
当把源代码line9去掉后,重新编译运行,会发现没有输入第二个字符,但已经输出结果了,如下图:
分析造成这一现象的原因:在C语言中,回车也算作一个字符量,计算机把回车这一字符赋值给了变量ans2,直接得到了输出结果
所以,这里的getchar()相当于“吃”掉回车,不进行赋值。
task4.c
1 #include<stdio.h> 2 int main() 3 { 4 double x,y; 5 char c1,c2,c3; 6 int a1,a2,a3; 7 scanf("%d%d%d",&a1,&a2,&a3); 8 printf("a1=%d,a2=%d,a3=%d\n",a1,a2,a3); 9 scanf("%c%c%c",&c1,&c2,&c3); 10 printf("c1=%c,c2=%c,c3=%c\n",c1,c2,c3); 11 scanf("%lf%lf",&x,&y); 12 printf("x=%lf,y=%lf\n",x,y); 13 return 0; 14 }
task5.c
1 #include<stdio.h> 2 int main() 3 { 4 int year; 5 double rest; 6 year=1e9/(3600*24*365); 7 rest=1e9-year*(3600*24*365); 8 if((rest/(3600*24*365))>=0.5) 9 year++; 10 else 11 year=year; 12 printf("10亿秒约等于%d年\n",year); 13 return 0; 14 }
task6_2.c
1 #include <stdio.h> 2 #include <math.h> 3 int main() 4 { 5 double x,ans; 6 while(scanf("%lf", &x) != EOF) 7 { 8 ans=pow(x,365); 9 printf("%.2f的365次方:%.2f\n",x,ans); 10 printf("\n"); 11 } 12 return 0; 13 }
task7.c
1 #include<stdio.h> 2 int main() 3 { 4 double f; 5 double c; 6 while(scanf("%lf",&c)!=EOF) 7 { 8 f=9.0/5*c+32; 9 printf("摄氏度c=%.2f时,华氏度f=%.2f\n",c,f); 10 printf("\n"); 11 12 } 13 return 0; 14 }
task8.c
1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 int a,b,c; 6 double area,s; 7 while(scanf("%d%d%d", &a,&b,&c) != EOF) 8 { 9 s=(a+b+c)/2.0; 10 area=sqrt(s*(s-a)*(s-b)*(s-c)); 11 printf("a=%d,b=%d,c=%d,area=%.3f\n",a,b,c,area); 12 printf("\n"); 13 14 } 15 return 0; 16 }
标签:10,main,return,int,输入输出,C语言,printf,编写,include From: https://www.cnblogs.com/qq2055939904/p/18069604