3.3 程序举例

这一节再通过几个例子来说明输入输出函数的应用,请读者细心观察输入和输出格式。

【例3.5】  从键盘输入3个数,输出其平均值。

 #include<stdio.h>

 void main()

 { int a,b,c;

  float aver;

  scanf("%d%d%d",&a,&b,&c);

  aver=(a+b+c)/3.0;

  printf("aver=%7.2f\n",aver);

 }

输入:1 6 9↙

输出:aver= 5.33

【例3.6】  交换两个变量的值。

 #include<stdio.h>

 void main()

 { int a,b,t,*pa=&a,*pb=&b;

  scanf("a=%d,b=%d",&a,&b);  /*等价于scanf("a=%d,b=%d",pa,pb);*/

  t=*pa;*pa=*pb;*pb=t;  /*等价于t=a;a=b;b=t; */

  printf("a=%d,b=%d\n",a,b);  /*等价于printf("a=%d,b=%d\n",*pa,*pb);*/

 }

输入:a=3,b=5↙

输出:a=5,b=3

【例3.7】  输入一大写字母,要求输出其对应的小写字母。

 #include<stdio.h>

 void main()

 { char ch;

 scanf("ch=%c",&ch);   /*本语句也可以使用ch=getchar();*/

 ch+=32;

 printf("ch=%c\n",ch);  /*本语句也可以使用putchar(ch);*/

 }

输入:ch=A↙

输出:ch=a

【例3.8】  输入三角形的三边长,求三角形面积。

已知三角形的三边长abc,则该三角形的面积公式为:

其中s=(a+b+c/2。

#include<stdio.h>

#include<math.h>

void main()

 { 

 float a,b,c,s,area;

 scanf("%f,%f,%f",&a,&b,&c);

 s=1.0/2*(a+b+c);

 area=sqrt(s*(s-a)*(s-b)*(s-c));

 printf("area=%7.2f\n",area);

  }

输入:3.5,4.6,5.7↙

输出:area= 8.05

【例3.9】  输入一个实数,要求按保留小数点后2位,第3位四舍五入输出。

#include<stdio.h>

 void main()

 { float x;

 scanf("x=%f",&x);

 x=(int)(x*100+0.5)/100.0;

 printf("x=%f\n",x);

 }

输入:x=12.34567↙

输出:x=12.350000

【例3.10】  输入两个两位的正整数,要求把这两个正整数重新组合后输出。

 例如:a=35,b=46,经重新组合后c=3456输出。

 #include<stdio.h>

 void main()

 { int a,b,c;

 scanf("a=%d,b=%d",&a,&b);

 c=a/10*1000+b/10*100+a%10*10+b%10;

 printf("c=%d\n",c);

 }

输入:a=35,b=46↙

输出:c=3456