实验2 格式化输入输出和分支语句
程序员文章站
2022-05-22 16:55:40
恢复内容开始 part 1 格式化输出函数printf()和格式化输入函数scanf() ex2_1.cpp ex2_2.cpp scanf后的括号内要加地址符& 定义的数据类型要和scanf和printf的相同 part 2 验证性内容 line 14~line 19改变后为 是可以的 (2)修改 ......
---恢复内容开始---
part 1 格式化输出函数printf()和格式化输入函数scanf()
ex2_1.cpp
#include <stdio.h> int main() { int x=1234; float f=123.456; double m=123.456; char ch='a'; char a[]="hello, world!"; // 定义一个数组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; }
ex2_2.cpp
#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("%lf,%lf\n",x,y); return 0; }
scanf后的括号内要加地址符&
定义的数据类型要和scanf和printf的相同
part 2 验证性内容
#include <stdio.h> int 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) printf("构成等边三角形\n"); else if(a==b || a==c || b==c) printf("构成等腰三角形\n"); else printf("构成一般三角形\n"); } else printf("不能构成三角形\n"); return 0; }
line 14~line 19改变后为
#include <stdio.h> int 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 || a==c){ if (a==b && a==c) printf("构成等边三角形\n"); else printf("构成等腰三角形\n"); } else printf("构成一般三角形\n"); } else printf("不能构成三角形\n"); return 0; }
是可以的
(2)修改前的代码
#include <stdio.h> #include <stdlib.h> 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; }
修改int后的代码为:
#include <stdio.h> #include <stdlib.h> 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请输入, 选择你想使用的屏幕配色方案: "); 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; }
part 3 编程练习
(1)回文数
#include<stdio.h> int main(){ int x,a,b,c; printf ("请输入一个三位数内的十进制整数:\n"); scanf ("%d",&x); if(x>0&&x<10){ printf("计算其逆序数...\n"); printf("%d正序和逆序相同\n",x); } else if(x>=10&&x<100){ a=x%10; b=x/10; if(x==a*10+b){ printf("计算其逆序数...\n"); printf("%d正序和逆序相同\n",x); } else{ printf("计算其逆序数...\n"); printf("%d正序和逆序不同\n",x); } } else if(x>=100&&x<1000){ c=x/100; b=(x-c*100)/10; a=x%10; if(x==a*100+b*10+c){ printf("计算其逆序数...\n"); printf("%d正序和逆序相同\n",x); } else{ printf("计算其逆序数...\n"); printf("%d正序和逆序不同\n",x); } } else printf("?"); return 0; }
(2)从键盘上输入年份和月份,计算该月有多少天。
#include<stdio.h> int main(){ printf("输入年份 月份:\n"); int year,month,day,leapyear; scanf("%d %d",&year,&month); leapyear=year%4==0&&year%100!=0||year%400==0; if(year<0||month<1||month>12) printf("输入的数据错误!"); else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) day=31; else if(month==4||month==6||month==9||month==11) day=30; else if(month==2) day=28+leapyear; printf("%d年%d月的天数为:%d\n",year,month,day); return 0; }
从键盘输入一个百分制成绩(整型量),要求输出成绩等级:优秀、良好、中等、及格、不及格。
#include<stdio.h> #include<stdlib.h> int main(){ int x; scanf("%d",&x); printf("输入分数(0~100):%d\n",x); switch(x/10){ case 0 : case 1 : case 2 : case 3 : case 4 : case 5 : printf("不及格");break; case 6 : printf("及格");break; case 7 : printf("中等");break; case 8 : printf("良好");break; case 9 : printf("优秀");break; case 10 : printf("优秀");break; default:printf("分数不在有效区域内");break; } return 0; }
---恢复内容结束---