#includeint main(){ int x=1234; float f=123.456; double m=123.456; char ch='a'; char a[]="Hello,world!"; int y=3,z=4; printf("%d %d\n",y,z); printf("y=%d,z=%d\n",y,z); printf("%8d,%2d\n",x,x); printf("%f,%8f,%8.1f,%0.2f,%.2e\n",f,f,f,f,f); printf("%lf\n",m); printf("%3c\n",ch); printf("%s\n%15s%\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a); return 0; }
有些数字前多了空格,改变了其输出值的宽度和精度
123.456001,123.5,123.46,1.23e+002与初始值不一致,
原因:
计算机中采用二进制,输入数只能四舍五入的转化为二进制存储,取出时无法还原,出现了浮点数的精确度问题。
Hello,world!后三个与初始值不一致。
原因:
.n对字符串,指定实际输出位数
#includeint 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); //未加l printf("%f,%lf\n",x,y); return 0; }
#includeint main(){ double a,b,c; scanf("%lf %lf %lf",&a,&b,&c); if(a<0 || b<0 || c<0) printf("不能构成三角形\n"); else if(a+b>c && a+c>b && b+c>a){ if(a==b || a==c || b==c) { if (a==b && a==c) printf("构成等边三角形\n"); else printf("构成等腰三角形\n"); } else printf("构成一般三角形\n"); } else printf("不能构成三角形\n"); return 0; }
#include#include int main() { char choice; printf("输入0~9以内的数字,选择屏幕背景色前景色方案: \n"); printf("1-\t黑底绿色\n"); printf("2-\t白底黑色\n"); printf("3-\t蓝底白色\n"); printf("其它-\t黑底白色(默认)\n"); printf("\n请输入, 选择你想使用的屏幕配色方案: "); choice = getchar(); if (choice == '1') { system("color 02"); printf("《黑客帝国》一类的影视剧常见这种屏幕色:)\n"); } else if(choice == '2') { system("color f0"); printf("大部分编辑器默认是这种配色:)\n"); } else if(choice == '3') { system("color 1f"); printf("这是机器蓝屏故障时的不讨喜色:)\n"); } else { system("color 0f"); printf("控制台程序默认小黑窗:)\n"); } printf("programming is fun, just try@_@\n"); return 0; }
#include#include int main() { int choice; printf("输入0~9以内的数字,选择屏幕背景色前景色方案: \n"); printf("1-\t黑底绿色\n"); printf("2-\t白底黑色\n"); printf("3-\t蓝底白色\n"); printf("其它-\t黑底白色(默认)\n"); printf("\n请输入, 选择你想使用的屏幕配色方案: "); choice = getchar(); if (choice == 1 ) { system("color 02"); printf("《黑客帝国》一类的影视剧常见这种屏幕色:)\n"); } else if(choice == 2 ) { system("color f0"); printf("大部分编辑器默认是这种配色:)\n"); } else if(choice == 3 ) { system("color 1f"); printf("这是机器蓝屏故障时的不讨喜色:)\n"); } else { system("color 0f"); printf("控制台程序默认小黑窗:)\n"); } printf("programming is fun, just try@_@\n"); return 0; }
#includeint main(){ printf("请输入一个三位以内的十进制整数:\n计算其逆序数"); int a,b1,b2; scanf("%d",&a); b1=((a/10)%10+(a%10)*10); b2=((a/100)%10+((a/10)%10)*10+(a%10)*100); if(a>=-9&&a<=9) printf("%d正序和逆序相同",a); else if((a>=10&&a<=99)||(a>=-99&&a<=-10)) { if(b1==a) printf("%d正序和逆序相同",a); else printf("%d正序和逆序不同",a); } else { if(b2==a) printf("%d正序和逆序相同",a); else printf("%d正序和逆序不同",a); } }
#include#include int main() { int y,m,day,d1; scanf("%d %d",&y,&m); d1=28+(y%4==0&&y%100||y%400==0); if(y<0 || m<1 || m>12) { printf("输入的数据错误!\n"); exit(0); } if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12) printf("day=31",day); else if(m==4 || m==6 || m==9 || m==11) printf("day=30",day); else printf("day=%d",d1); return 0; }
#include#include int main(){ int score; scanf("%d",&score); if(score<0||score>100) { printf("输入数据错误\n"); exit(0); } switch(score/10) { case 10: case 9:printf("优秀\n");break; case 8:printf("良好\n");break; case 7:printf("中等\n");break; case 6:printf("及格\n");break; case 5:printf("不及格\n");break; } return 0; }
实验总结与体会
踩得坑:前面输的习惯导致用if语句后老加分号每次都被说else前没有if。。语句大概规则是懂了,但要混在一起输入还是会乱,小错误不断。