1.实验1 task1_1
1 //打印一个字符小人 2 #include <stdio.h> 3 int main() 4 { 5 printf(" o \n"); 6 printf("<H>\n"); 7 printf("I I\n"); 8 return 0; 9 10 }
实验1 task1_2
1 //打印两个字符小人 2 #include <stdio.h> 3 int main() 4 { 5 printf(" o o \n"); 6 printf("<H> <H>\n"); 7 printf("I I I I\n"); 8 return 0; 9 }
2.实验1 task2
1 //1+2+3+4...+n(设n的取值在100以内) 2 //用数学归纳法(求和公式计算) 3 4 #include <stdio.h> 5 6 int main() 7 { 8 int n,sum; 9 10 //从键盘上输入一个十进制整数给n 11 scanf("%d",&n); 12 sum=n*(n+1)/2; 13 //sum=(n+1)*n/2; 14 //sum=n/2*(n+1); 15 //sum=(n+1)/2*n; 16 17 18 //打印输出求和结果 19 printf("sum=%d\n",sum); 20 21 return 0; 22 }
写法1 sum=n*(n+1)/2:n=50,sum=1275;n=51,sum=1326
写法2 sum=(n+1)*n/2:n=50,sum=1275;n=51,sum=1326
写法3 sum=n/2*(n+1):n=50,sum=1275;n=51,sum=1300
写法4 sum=(n+1)/2*n:n=50,sum=1250;n=51,sum=1326
写法1和写法2可以实现题目要求,写法3和写法4不可以。写法3:n=51时,n/2为整数除法,结果为25,25*52=1300;写法4:n=50时,(n+1)/2为整数除法,结果为25,25*50=1250。
3.实验1 task3
1 #include <stdio.h> 2 3 int main() 4 { 5 int a,b,t; 6 a=3; 7 b=4; 8 printf("a=%d,b=%d\n",a,b); 9 10 t=a; 11 a=b; 12 b=t; 13 printf("a=%d,b=%d",a,b); 14 return 0; 15 }
图中代码10-12的功能是实现a和b的值的交换。
4.实验1 task4
1 #include <stdio.h> 2 int main() 3 { 4 int x,t,m; 5 x=123; 6 printf("x=%d\n",x); 7 8 t=0; 9 m=x%10; 10 t=t*10+m; 11 x=x/10; 12 13 m=x%10; 14 t=t*10+m; 15 x=x/10; 16 17 m=x%10; 18 t=t*10+m; 19 x=x/10; 20 21 printf("t=%d\n",t); 22 return 0; 23 24 }
(1)把x的值改成456,结果是654.
(2)代码8-19的功能是得到一个数的逆序。
5.实验1 task5
1 //从键盘上输入三个数据作为三角形边长:从键盘上输入三角形三边,判断它能否构成三角形 2 //构成三角形的条件:任意两边之和大于第三边 3 #include <stdio.h> 4 int main() 5 { 6 float a,b,c; 7 // 输入三角形三边之长 8 9 scanf("%f%f%f", &a, &b, &c); 10 11 //判断能否构成三角形 12 13 if (((a+b)>c)&&((a+c)>b)&&((b+c)>a)) 14 printf("能构成三角形\n"); 15 else 16 printf("不能构成三角形\n"); 17 return 0; 18 }
6.实验1 task6
1 //计算10亿秒等于多少年,并打印输出 2 #include<stdio.h> 3 int main() 4 { 5 int year; 6 year=1000000000/60/60/24/365; 7 printf("10亿年约等于%d年\n",year); 8 return 0; 9 }
7.实验1 task7
1 //生成一个[60,100]之间的随机整数,并打印输出 2 #include <stdio.h> 3 #include<stdlib.h> 4 #include<time.h> 5 int main() 6 { 7 int n; 8 srand((unsigned)time(NULL)); 9 n=rand()%41+60; 10 printf("n=%d\n",n); 11 return 0; 12 }
按原代码运行后生成的随机数都相同,都是60。在第8行添加srand((unsigned)time(NULL));后每次生成的随机数都不相同。
8.实验1 task8
1 #include <stdio.h> 2 int main() 3 { 4 char ans1,ans2; 5 printf("每次课前认真预习、课后及时复习了没?(输入y或Y表示有,输入n或N表示没有):"); 6 ans1=getchar();//从键盘输入一个字符,赋值给ans1 7 8 getchar();//思考这里为什么要加这一行,删去是否有影响 9 10 printf("\n动手敲代码实践了没?(输入y或Y表示敲了,输入n或N表示木有敲):"); 11 ans2=getchar(); 12 13 if (((ans1=='y')||(ans1=='Y'))&&((ans2=='y')||(ans2=='Y'))) 14 printf("罗马不是一天建成的,继续保持哦:)\n"); 15 else 16 printf("罗马不是一天毁灭的,我们来建设吧\n"); 17 return 0; 18 }
若删去getchar();,则结果为
实验总结:代码最后要加";"。if 语句跟的内容要加括号。小黑窗闪退可以用Ctrl+Fn+F5解决。
标签:10,main,int,sum,数据类型,C语言,运算符,printf,include From: https://www.cnblogs.com/joshh1230/p/17171447.html