实验结论
part1:格式化输出函数printf()和格式化输入函数scanf()
(1)几种常用的格式字符:
%d:按十进制整数输出 %f:按浮点数输出
%s:按字符串输出 %c:按字符输出
%e(或%E):按指数形式输出
m: 输出数据域宽,数据长度<m,左补空格;否则按实际输出
.n:对实数,指定小数点后位数(四舍五入),对字符串,指定实际输出位数
l: 在d、o、x、u前,指定输出精度为long型;在e、f、g前,指定输出精度为double型
格式说明形式:%[<修饰符>]<格式字符>
实例:
%5d: 按宽度5输出一个整型数据,不足前补空格,超过按原样输出,按宽度5
%.3f:单精度浮点型,保留3位小数
%lf: 按双精度浮点型输出
%6.2f:按数据域宽6输出单精度浮点型数据,保留2位小数
%4.2s:按数据域宽4,输出位数2输出字符串型数据
特别地,当以double双精度浮点型输入数据时,必须使用%lf
part4
#include <stdio.h> int main() { int level; printf("输入现在的状态等级(1-5): "); scanf("%d",&level); switch(level) { case 1: printf("high翻了:)\n"); break; case 2: printf("low爆了:(\n"); break; default: printf("一言难尽,无法概括。。。\n"); } return 0; }
去掉break;
两者区别:
当有break时,遇到break语句,程序就跳出这一case,switch语句结构,转到其结构后面的语句执行;当没有break语句时,程序就会一直往下执行,直到遇到break语句或该switch结构结束。在该程序中即为输入1,会执行case的所有语句,直到switch结构结束。
part5
#include <stdio.h> int main(){ int answer; printf("请输入你的答案(A,B,C or D):"); scanf("%c",&answer); if(answer!=‘A‘&&answer!=‘B‘&&answer!=‘C‘&&answer!=‘D‘){ printf("invalid answer,try again~\n"); } else switch(answer){ case ‘A‘:printf("Binggo, you are right~\n");break; default :printf("try again~\n");break; } return 0; }
实验总结与体会:
对代码还是不够敏感,不能快速找出其中的错误,记忆不准确
if语句刚刚学习,用起来有一点生疏,要多加练习
原文:https://www.cnblogs.com/mjc217/p/10638971.html