目录
一、顺序结构程序设计
【例 3.1】求华式温度100F对应的摄氏温度。计算公式:
c=5*(f-32)/9
式中:c 表示摄氏温度,f 表示华式温度
代码:
/*将华式温度转换为摄氏温度*/
#include<stdio.h>
int main(void)
{
/*定义两个整形变量,Celsius表示摄氏温度,fahr表示华式温度*/
int celsius,fahr;
printf("输入华式温度;");
scanf("%d",&fahr);
celsius=5*(fahr-32)/9;
printf("华氏温度为:%d,输出摄氏温度:%d\n",fahr,celsius);
return 0;
}
运行结果:
【例 3.2】由键盘输入一个小写字母,将其转换成大写字母。
代码:
#include<stdio.h>
int main(void)
{
/*从小写得到大写需要小写的ASCII码-32*/
char c1,c2;
printf("输入一个小写字母:");
/*一种是scanf函数、另一个可以使用getchar*/
c1=getchar();
/*scanf("%c,",&c1);*/
c2=c1-32;
printf("输出的大小字母为:");
printf("%c,%d\n%c,%d",c1,c1,c2,c2);
return 0;
}
运行结果:
数据的输入输出
C语言没有提供用于数据输入及输出的语句,所有的输入与输出都是通过系统提供的有关函数(如scanf()和printf()函数)来实现的。
输出函数:printf()函数
格式:
printf("格式控制符",输出项表列)
输入函数:scanf()函数
格式:
scanf("格式控制字符串“,输入项表列)
字符型数据的输入和输出
getchar()函数
设ch是字符型变量,函数getchar()的一般调用格式为:
ch=getchar();
函数getchar()只能调用一个字符
putchar()函数
putchar(输出参数);
输出一个字符,输出参数是字符型或字符型常量
【例 3.10】输入一个球的半径,根据公式计算球的体积
# include<stdio.h>
# define PI 3.14
int main()
{
float r,v;
printf("请输入半径:");
scanf("%f",&r);
v=4*PI*r*r*r/3.0;
printf("球的体积是%.2f",v);
return 0;
}
运行结果:
二、分支结构程序设计
【例4.1】输入三角形的三边,判断是否构成三角形,若能则计算三角形的面积,否则给出提示
# include<stdio.h>
# include<math.h>
int main()
{
int a,b,c;
float area;
double s;
printf("请输入三角形的三条边:");
scanf("%d,%d,%d",&a,&b,&c);
s=(a+b+c)/2.0;
if(a+b<=c||a+c<=b||b+c<=a)
{
printf("不能构成三角形!\n");
}
else
{
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("三角形的面积是:%f\n",area);
}
return 0;
}
运行结果:
三角形利用三个边长求面积:
海伦公式:p=(a+b+c)/2.0; s=sqrt(p*(p-a)*(p-b)*(p-c));
逻辑运算符:
逻辑或:|| 逻辑与:&& 逻辑非:!
分支结构
1、分支结构(if-else、if()、if语句的嵌套、多分支结构if-else if-else if-......else)
形式:
if(表达式)
语句1;
else
语句2;
【例4.8】编写一个程序,根据键盘输入的x值,计算y的值。
#include<stdio.h>
# include<math.h>
int main()
{
double x,y;
printf("请输入x的值:");
scanf("%lf",&x);
if(x<=1)
y=exp(x);
else
y=pow(x,2)-1;
printf("当输入x的值为:%lf,输出的y值为:%lf",x,y);
return 0;
}
运行结果:
2、使用switch语句实现分支结构
switch(表达式)
{
case 常量1 : 语句1;break;
case 常量2 : 语句2 ;break;
......
case 常量n : 语句n;break;
default : 语句n+1;break;
}
【例4.16】编写程序,输入一个月份值,输出该月份是第几季度。
#include<stdio.h>
int main()
{
int month;
printf("请输入月份:");
scanf("%d",&month);
switch((month-1)/3)
{
case 0:
printf("%d月是第一季度\n",month);
break;
case 1:
printf("%d月是第二季度\n",month);
break;
case 2:
printf("%d月是第三季度\n",month);
break;
case 3:
printf("%d月是第四季度\n",month);
break;
}
return 0;
}
运行结果:
【例4.21】由键盘输入一个三位数的整数,判断该数是否为升序数。若输入的不是三位数,输出
"Enter error"。升序数是指高位数依次小于其低位数的数。如359就是升序数。
#include <stdio.h>
int main()
{
int a,b,c,d;
printf("请输入一个整数:");
scanf("%d",&a);
if(a<100||a>999)
printf("Enter error");
b=a/100;
c=a%100/10;
d=a%10;
if(b<c&&c<d)
printf("%d是一个升序数!",a);
else
printf("%d不是一个升序数!",a);
return 0;
}
运行结果: