part 1.格式化输出函数printf()和格式化输入函数scanf()
列出一些常见的输出格式字符:
%d 十进制整数输出 %f:浮点数输出
%o:八进制输出 %x:十六进制输出
%e:指数形式输出 %c:字符输出
%s:字符串输出
修饰符:
m:数据长度<m,左补空格;否则,实际长度输出
.n:对实数,指定小数点后位数(四舍五入);对字符串,指定实际输出位数
#includeint main() {int x=1234;float f=123.456;double m=123.456;char ch='a';char 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.scanf()函数中的地址表列一定要加上地址运算符‘&’,切记!!!
2.字符变量要用单引号,字符串要用双引号。
3.float()函数定义要用%f输入输出,double()函数要用%lf输入输出。
改错
《C语言程序设计教程学习指导》p119 实验内容(2)这是一个格式化输入输出函数及格式符使用练习找出两处错误,修改并运行程序为a1,a2,a3,c1,c2,c3,x,y输入数据,使得:a1=1,a2=2,a3=3,c1='a',c2='b',c3='c', x=1.5, y=2.5*/#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("%lf,%lf\n",x,y);return 0;
scanf()函数要记得地址运算符‘&’;x、y用double()定义,要用%lf输入输出。
part 2.
putchar()函数:输出一个字符,格式为putchar(ch)
getchar()函数:输入一个字符(不含任何参数),ch=getchar()。
(想法:这两个函数可以被printf()和scanf()替换,那么这两个函数存在意义是什么呢?)
part 3.if语句
1.比较大小
#includeint main(){ double a,b,c; double x; scanf("%lf%lf%lf",&a,&b,&c); if(b>a){ x=a; a=b; b=x; } if(c>a){ x=a; a=c; c=x; } if(c>b){ x=b; b=c; c=x; } printf("%lf > %lf > %lf\n",a,b,c); return 0;}
注:if后面的小括号必须要有,语句序列只有一句时可以省略{}。
part 4.switch用法
#includeint 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:
#includeint 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;}
两次结果不同。没有break,只要满足case里的条件,程序会一直执行下去;有break语句,程序遇到break语句,便跳出switch语结构。
part 5.
选择正确答案(以A为正确答案)
if语句
#includeint main(){ printf("please enter your answer(A,B,CorD):"); char ch; ch=getchar(); if(ch=='A'||ch=='a') printf("you are right"); else printf("try again~"); return 0;}
switch语句
#includeint main(){ printf("please enter your answer(A,B,CorD):"); char ch; ch=getchar(); switch(ch){ case 'A'||'a':printf("you are right"); break; default:printf("try again~"); } return 0;}