实验2

实验结果:

ex1:

 1 #include <stdio.h>
 2 int main() {
 3     int a=5, b=7, c=100, d, e, f;
 4 
 5     d = a/b*c;
 6     e = a*c/b;
 7     f = c/b*a;
 8     
 9     printf("d=%d, e=%d, f=%d\n",d,e,f);
10 
11     return 0;
12 }

 

line5:d=a÷b×c;line6:e=a×c÷b;line7:f=c÷b×a

变量d、e、f计算结果不同的原因是在编译过程中按顺序依次进行计算,且int整形运算无小数,影响了结果。

ex2:

 

 1 #include <stdio.h>
 2 int main() {
 3     int x=1234;
 4     float f=123.456;
 5     double m=123.456;
 6     char ch='a';
 7     char a[]="Hello, world!";
 8     int y=3, z=4; 
 9     
10     printf("%d %d\n", y, z);
11     printf("y=%d, z=%d\n", y,z);
12     printf("%8d,%2d\n", x,x);
13     printf("%f, %8f, %8.1f, %0.2f, %.2e\n",f,f,f,f,f);
14     printf("%lf\n",m);
15     printf("%3c\n", ch);
16     printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a);
17     
18     return 0;
19 }

 

 

 %d:按十进制整数输出已储存的变量

%md:输出m长度的的数据,若数据长度<m,则在左侧用空格补全,反则按实际输出。

%nf:对输出的实数的小数点后数据限制位数(四舍五入)。

%e:将数据按指数形式输出。

%lf:指定数据输出精度为double型

%3c:按字符输出且长度为3,长度不足左侧补空格。

%m.ns:将字符串取n个单位按m长度输出。

ex3:

 1 // ex3.cpp
 2 #include <stdio.h>
 3 int main() {
 4     double x,y;
 5     char c1,c2,c3;
 6     int a1,a2,a3;
 7     
 8     scanf("%d%d%d",&a1,&a2,&a3);
 9     printf("%d,%d,%d\n",a1,a2,a3);
10     scanf("%c%c%c",&c1,&c2,&c3);
11     printf("%c%c%c\n",c1,c2,c3);
12     scanf("%lf,%lf",&x,&y);
13     printf("%.1f,%.1lf\n",x,y);
14     
15     return 0;
16 } 

 

 ex4:


 1 #include <stdio.h>
 2 int main() {
 3     char x;
 4     
 5     x = getchar();
 6     
 7     if(x>='1'&&x<='9')
 8         printf("%cÊÇÊý×Ö×Ö·û\n", x);
 9     else if(x>='a'&&x<='z'||x>='A'&&x<='Z') 
10         printf("%cÊÇÓ¢ÎÄ×Öĸ\n", x);
11     else
12         printf("%cÊÇÆäËü×Ö·û\n", x);
13     
14     
15     return 0;
16 } 

 

 

 

 

 

 

 

 ex5:

 1 // ex5.cpp
 2 #include <stdio.h>
 3 int main() {
 4     char ans1, ans2;
 5     
 6     printf("复习了没? (输入y或Y表示复习了,输入n或N表示没复习) :  ");
 7     ans1 = getchar();  // 从键盘输入一个字符,赋值给ans1
 8     
 9     getchar(); // 思考这里为什么要加这一行 
10     
11     printf("\n动手敲代码了没? (输入y或Y表示敲了,输入n或N表示木有敲) :  ");
12     ans2 = getchar();
13     
14     if((ans1=='y'||ans1=='Y')&&(ans2=='y'||ans2=='Y'))
15         printf("\n罗马不是一天建成的:)\n");    
16     else
17         printf("\n罗马不是一天毁灭的。。。\n");
18 
19     return 0;
20 } 

 

 line9中的getchar是为了在程序执行时按任意键继续显示下一个问题(猜的)

ex6:

 1 # include<stdio.h>
 2 # include<math.h>
 3 int main()
 4 {
 5     int sum,n;
 6     scanf("%d",&n);
 7     sum=(1-pow(2,n))/(1-2);
 8     printf("n=%d时,sum=%d",n,sum);
 9     return 0;
10  }

 

 实验总结:

       格式化输入与输出在函数执行时的细节要求真滴严格,还是得自己多敲敲啊

 

posted @ 2020-11-01 16:59  卷心菜投手  阅读(111)  评论(1编辑  收藏  举报