part1:%d表示输入输出格式为整型,在需要以十进制整数输入或者输出数据时使用,常与int连用。例:scanf("%d",&a),指的是输入一个整数赋值给变量a;printf("%d\n",y)指的是按十进制整数输出y;
%f表示输入输出格式为浮点数形式,在需要以浮点数形式输入或者输出数据时使用,常与float,double连用。例子与上面的%d相似,不再赘述;
%c表示输入输出的形式为字符,在需要输入或者输出字符时使用,常与char连用。例子与上述相似,不再赘述;
%e表示输出的形式为指数形式,在需要输出的数据以指数形式出现时使用,常与float,double连用。例子与上述相似,不再赘述。
%s表示输出的形式为字符串,在需要输出字符串时使用,常与char连用。例子一般char定义一个数组a,数组a中连续存放字符串常量,printf中只需对a输出即可。
%5d表示以十进制整数形式输入输出某个数据,并给予其五个宽度。①,当原数据不足5个宽度时,输入输出数据右对齐,左侧补零;②,当原数据超过5个宽度时,按原数据输入或者输出。
%lf表示double的格式字符,用于格式化输入输出。当数据类型为double(双精度浮点类型)时,必须使用%lf。
%.3f表示小数点后保留三位有效数字(四舍五入),小数后不足三位补0。
%6.2f表示小数点后保留两位(四舍五入),并给予该数据六个宽度(小数点占一个宽度)。①,当取值后数据大于6个宽度时,按取值后原样输出;②,当取值后数据不足六个宽度,则数据右对齐,左边补空格。
part1:改错
#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处对a1,a2,a3缺少地址运算符&;最后一个scanf处,由于x为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:
#include <stdio.h> int main() { int level; printf("输入现在状态等级(1-5): "); scanf("%d",&level); switch(level) { case 1: printf("high翻了:)\n"); case 2: printf("low爆了:(\n"); default: printf("一言难尽,无法概括。。。\n"); } return 0; }
part5:
#include<stdio.h> int main(){ char anwser; printf("请输入你的答案(A,B,C or D):"); anwser=getchar(); if(anwser==65) printf("binggo, you are right~"); else printf("try again"); return 0; }
实验总结与体会:part1部分,这里一开始是看不懂的,什么%4d,%.4f之类的,后来上网查了一下,并且验证之后才得出上面的结果。补充一点的是%s,%5.3s表示去字符串的前三位字符,给与五个宽度。①,数据不足3位时,原样输出,给五个宽度,右对齐,补空格;②,若小数点前面的数小于小数点后面的数,则按小数点后的数取数据后原样输出。
part3部分,按照例子运行,没发现什么异常。
part4部分跟part3部分一样没有什么异常。如果没有break,那么从符合这个事件的语句的输出语句开始一直到结束的输出语句会全部输出。
坑:在写part5的时候,最初我是用switch语句写的,仿照书本P68页,例3.23,int anwser,并采用char函数(因为要输入字符),列出了事件case 65(因为是字符就想用ASCII码,因为直接case A,会出现报错,说A第一次被提出,即使前面int A都没用,也运行不了),改成这样后,运行倒是成了,但不论输入什么,结果都是try again,后来才想起来有个可以定义输入字符的函数getchar,然后仿照书本P57,例3.16(因为我觉得应该是anwser出了问题,这个例子也蛮符合这个程序要求的)写出了如上的代码,判断A,B,C,D也是采用ASCII码,直接输入A无法运行,报错跟之前一样,最后运行成功了。
至于其他的问题,晚上接着码,包括评论
原文:https://www.cnblogs.com/yuan82/p/10637894.html