标签:练习 case lib 判断 优秀 背景色 使用方法 分析 if语句
实验2 格式化输入输出和分支语句
Part1: 格式化输出函数printf()和格式化输入函数scanf()
ex1
#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; }
分析:
1.line16
“%8d”表示后面的x宽度为8,故输出的1234前有四个空格;
“%2d”表示x宽度为2,右对齐的方式输出,整型数位数超过了宽度按实际整数位输出。
2.Line17
“%f”输出浮点数,以小数形式输出,默认保留六位。浮点数为近似数,在电脑中以二进制保存产生溢出,精确度改变。
“%8f"表示宽度为8,右对齐输出。
“%8.1f” 数据8表示宽度,其中小数点占一位。数据1表示保留小数点后一位有效数字,这里123.456小数点后保留一位四舍五入为123.5。其中123.5只有五位但宽度为8,故补三位空格。
“%.2f”表示小数保留两位,整数部分按实际输出。
“%.2e”其中 %e是以指数形式输出,2是指输出的小数部分的位数。
3.Line18
“%lf”表示按double类型输出,双精度长浮点型有效数字长,为精确数。所以输出123.456000而不是123.456001.
4.Line19
“%3c”表示字符宽度为三,故输出a前有两位空格。
5.Line20
“%15s”表示输出字符串长度为15
“% 10.5s”表示字符串宽度为10,后面.5表示从左取五位,后面同理。
ex2
#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; }
分析:
错误1:scanf()中a1,a2,a3前未加地址符&
错误2:%f应改为%lf
#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|| b==c){ if(a==b && a==c) printf("构成等边三角形\n"); else printf("构成等腰三角形\n");} else printf("构成一般三角形\n");} else printf("不能构成三角形"); return 0; }
输出的结果不变。
ex4
#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请输入, 选择你想使用的屏幕配色方案: "); // 要求用户从键盘输入0~9的数字,选择屏幕配色方案 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 <stdio.h> #include <stdlib.h> int main() { int x; // 显示菜单 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",&x); // 根据用户输入,设置屏幕配色方案 if (x == 1) { system("color 02"); printf("《黑客帝国》一类的影视剧常见这种屏幕色:)\n"); } else if(x == 2) { system("color f0"); printf("大部分编辑器默认是这种配色:)\n"); } else if(x == 3) { system("color 1f"); printf("这是机器蓝屏故障时的不讨喜色:)\n"); } else { system("color 0f"); printf("控制台程序默认小黑窗:)\n"); } printf("programming is fun, just try@_@\n"); return 0; }
结果相同。
#include<stdio.h> int main(){ int a,b,c; printf("请输入一个三位数以内的十进制整数:\n"); printf("计算其逆序数。。。\n"); scanf("%d",&a); b=a/10+a/10*10; c=a/100+(a/10)%10*10+a/100*100; if(a<1||a>999) printf("拜托看看题目好不啦!"); else if(a>=1&&a<10) printf("%d正序与逆序相同",a); else if(a<=99&&a>=10){ if(a==b) printf("%d正序与逆序相同",a); else printf("%d正序与逆序不同",a); } else if(a>=100&&a<=999){ if(a==c) printf("%d正序与逆序相同",a); else printf("%d正序与逆序不同",a); } return 0; }
代码
#include<stdio.h> #include<stdlib.h> int main() { int year,month,day,leapyear; scanf("%d %d",&year,&month); if(year<0||month<1||month>12) { printf("输入的数据错误!\n"); exit(0); } leapyear=year%4==0&&year%100!=0||year%400==0; 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 day=28+leapyear; printf("%d年%d月的天数为:%d\n",year,month,day); return 0; }
代码
#include<stdio.h> #include<stdlib.h> int main() { int score; printf("输入数据(0~100):"); 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; default:printf("不及格\n");break; } return 0; }
运行结果
if里的{}容易和其他的{}弄混。
标签:练习 case lib 判断 优秀 背景色 使用方法 分析 if语句
原文地址:https://www.cnblogs.com/nuist123-4/p/11795670.html