实验1
#include <stdio.h> int main() { printf(" o \n"); printf("<H>\n"); printf("I I\n"); printf("\n"); printf(" o \n"); printf("<H>\n"); printf("I I\n"); return 0; }
#include <stdio.h> int main() { printf(" o o\n"); printf("<H> <H>\n"); printf("I I I I\n"); return 0; }
#include <stdio.h> int main() { int x,y; int r1,r2,r3,r4; x = 1; y = 2; r1 = x + y; r2 = x - y; r3 = x * y; r4 = x / y; printf("r1 = %d\n",r1); printf("r2 = %d\n",r2); printf("r3 = %d\n",r3); printf("r4 = %d\n",r4); return 0; }
#include <stdio.h> int main() { float x,y; float r1,r2,r3,r4; x = 1; y = 2; r1 = x + y; r2 = x - y; r3 = x * y; r4 = x / y; printf("r1 = %f\n",r1); printf("r2 = %f\n",r2); printf("r3 = %f\n",r3); printf("r4 = %f\n",r4); return 0; }
原因:第一次使用了整形的定义,第二次使用浮点型定义,所以第二次结果带有小数点。
#include <stdio.h> int main() { int n,r1,r2,r3,r4; n = 100; r1 = n*(n+1)/2; r2 = (n+1)*n/2; r3 = n/2*(n+1); r4 = (n+1)/2*n; printf("n = %d\n",n); printf("r1 = %d\n",r1); printf("r2 = %d\n",r2); printf("r3 = %d\n",r3); printf("r4 = %d\n",r4); return 0; }
#include <stdio.h> int main() { int n,r1,r2,r3,r4; n = 101; r1 = n*(n+1)/2; r2 = (n+1)*n/2; r3 = n/2*(n+1); r4 = (n+1)/2*n; printf("n = %d\n",n); printf("r1 = %d\n",r1); printf("r2 = %d\n",r2); printf("r3 = %d\n",r3); printf("r4 = %d\n",r4); return 0; }
line7:n乘以(n+1)除以2;
line8:(n+1)乘以n除以2;
line9:n除以2乘以(n+1);
line10:(n+1)除以2乘以n;
不同的原因:在c语言的运算中,由于采用了整形的定义,所以在做除法运算时会丢掉小数部分,取偶数无误差,取奇数有误差,该误差即为运算结果不同的原因。
#include <stdio.h> int main() { double x,y; char c1,c2,c3; int a1,a2,a3; scanf("%d%d%d",&a1,&a2,&a3); printf("%d,%d,%d\n",a1,a2,a3); scanf(" %c %c %c",&c1,&c2,&c3); printf("%c%c%c\n",c1,c2,c3); scanf("%lf %lf",&x,&y); printf("%f,%f\n",x,y); return 0; }
#include <stdio.h> int main() { int a1,a2; char c1,c2; scanf("%d%c%d%c",&a1,&c1,&a2,&c2); printf("a1 = %d, a2 = %d\n", a1 , a2); printf("c1 = %c, c2 = %c\n", c1 , c2); return 0; }
#include <stdio.h> int main() { int answer; char words[5000]; printf("网课学习让一些人欢喜一些人忧。\n"); printf("1. 作为一个宅,社恐,觉得这样很好。有网络,自主学习,很ok。\n"); printf("2. 不喜,不喜,很不喜。眼睛快瞎了。脑壳有点卡。。。\n"); printf("3. 中间派。不知道。说不清。\n"); printf("4. 其他。。。\n"); printf("你的选择: "); scanf("%d",&answer); if(answer == 4){ printf("请补充说明你的想法: \n"); getchar(); gets(words); } printf("\n"); printf("当遇到问题时,你会选择:\n"); printf("1. 遇到问题,解决问题。不懂的,搜索式学习,逐个攻破。\n"); printf("2. 遇到问题,不高兴。然后。。。没有了\n"); printf("3. 其他。。。\n"); printf("你的选择: "); scanf("%d",&answer); if(answer == 1) printf(":)\n"); else if(answer == 3){ printf("请补充说明你的想法: \n"); getchar(); gets(words); } return 0; }