part 1.格式化输出函数printf()和格式化输入函数scanf()
列出一些常见的输出格式字符:
%d 十进制整数输出 %f:浮点数输出
%o:八进制输出 %x:十六进制输出
%e:指数形式输出 %c:字符输出
%s:字符串输出
修饰符:
m:数据长度<m,左补空格;否则,实际长度输出
.n:对实数,指定小数点后位数(四舍五入);对字符串,指定实际输出位数
#include <stdio.h> int 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 */ #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()函数要记得地址运算符‘&’;x、y用double()定义,要用%lf输入输出。
part 2.
putchar()函数:输出一个字符,格式为putchar(ch)
getchar()函数:输入一个字符(不含任何参数),ch=getchar()。
(想法:这两个函数可以被printf()和scanf()替换,那么这两个函数存在意义是什么呢?)
part 3.if语句
1.比较大小
#include<stdio.h> int 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用法
#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; }
两次结果不同。没有break,只要满足case里的条件,程序会一直执行下去;有break语句,程序遇到break语句,便跳出switch语结构。
part 5.
选择正确答案(以A为正确答案)
if语句
#include<stdio.h> int 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语句
#include<stdio.h> int 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; }