part1:格式化输入函数和格式化输出函数
1.
line16:%8d控制输出宽度,不足的以空格补齐。 %2d小于原数据宽度故不变
line17: %8.1f表示宽度为8,小数保留一位;%0.2f表示小数保留两位;%.2e表示以指数形式表示小数,小数部分保留两位. 001是因为十进制转二进制精度问题
line18:double型更精确,没有001
line19:%3c表示宽度为3
line20:同样有输出宽度和精度决定
2.
line13scanf()函数缺少&;line15双精度数输入要用%lf。
#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); printf("%f,%lf\n",x,y); return 0; }
总结:不同类型的数据输入对应不同的格式符,双精度数据的收入要用%lf,长整型数据的输入要用%ld。
Part2:验证性内容
1.三角形判断
可以替换
#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("构成等边三角形"); else printf("构成等腰三角形"); else printf("构成一般三角形"); } else printf("不能构成三角形\n"); return 0; }
2.
// 功能: 从键盘上输入数字选择屏幕配色方案,打印字符串 // 输入1, 选择黑底绿色配色方案 // 输入2,选择白底黑色配色方案 // 输入3,选择蓝底黑色配色方案 // 输入其它,选择黑底白字配色方案(默认) #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请输入, 选择你想使用的屏幕配色方案: "); // 要求用户从键盘输入0~9的数字,选择屏幕配色方案 scanf("%d",&choice); // 根据用户输入,设置屏幕配色方案 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; }
Part3:编程练习
1.逆序数
#includeint main() { printf("请输入一个三位数以内的整数:"); int a,b,c; scanf("%d",&a); printf("计算其逆序数...\n"); if(a>=0&&a<=9) printf("%d正序和逆序相同",a); else if(a>=10&&a<=99) { b=a%10; c=a/10; if(b==c) printf("%d正序和逆序相同",a); else printf("%d正序和逆序不同",a); } else if(a>=100&&a<1000) { b=a%10; c=a/100; if(b==c) printf("%d正序和逆序相同",a); else printf("%d正序和逆序不同",a); } else printf("输入数据错误"); return 0; }
2.月份天数的判断
#includeint main() { printf("输入年份 月份:\n"); int year,month; scanf("%d%d",&year,&month); if(year<0||month<1||month>12) printf("输入数据错误"); else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) printf("%d年%d月有31天",year,month); else if(month==4||month==6||month==9||month==11) printf("%d年%d月有30天",year,month); else if(month==2) if(year%4==0&&year%100!=0||year%400==0) printf("%d年%d月有29天",year,month); else printf("%d年%d月有28天",year,month); return 0; }
3.等级的判断
#includeint main() { printf("输入分数(0-100):"); int a; scanf("%d",&a); if(a<0||a>100) printf("分数不在有效区间"); else { switch(a/10) { case 10: case 9:printf("优秀");break; case 8:printf("良好");break; case 7:printf("中等");break; case 6:printf("及格");break; case 5: case 4: case 3: case 2: case 1: case 0:printf("不及格");break; } } }
总结与体会
1.scanf()函数的地址符不能遗漏,格式符的类型要匹配。sacnf()函数与printf()都有分号和双引号。
2.if else中不止一行的要加大括号,注意括号的匹配。
3.注意全角与半角的切换,中文打完要及时切换,不然一些标点是无效的。