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;
}