C 程序设计教程(12)—— C 语言顺序结构程序设计
该专栏主要介绍 C 语言的基本语法,作为《程序设计语言》课程的课件与参考资料,用于《程序设计语言》课程的教学,供入门级用户阅读。
目录
- C 程序设计教程(12)—— C 语言顺序结构程序设计
- 1、编写程序实现两个变量值的交换
- 2、求 ax^2+bx+c=0 方程的根
- 3、输入三角形的三个边长,求三角形的面积。
- 4、存款利息计算1
- 5、存款利息计算2
- 6、字符型数据的输出问题
- 7、scanf 函数的各种输入格式
- 8、对字符型数据进行运算
结构化程序设计方法通常采用三种不同的程序结构,分别是:顺序结构、选择结构和循环结构。其中顺序结构是最基本、最简单的程序结构,其特征是系统按照语句书写的先后次序执行程序。
在顺序结构中经常会用到赋值语句和输入、输出语句。举例如下:
1、编写程序实现两个变量值的交换
程序如下:
#include<stdio.h>
int main() {
int x,y,t;
printf("请分别为变量x,y输入一个整数:");
scanf("%d,%d",&x,&y);
t=x;
x=y;
y=t;
printf("交换后的变量值为:x=%d,y=%d",x,y);
return 0;
}
程序的执行结果如下:
2、求 ax^2+bx+c=0 方程的根
a、b、c 由键盘输入,且假设 b^2-4ac>=0。程序如下:
#include<stdio.h>
#include<math.h>
int main() {
float a,b,c,x1,x2,p,q;
printf("请输入方程ax^2+bx+c=0的系数:");
scanf("%f,%f,%f",&a,&b,&c);
/* 判断 b^2-4ac 是否小于0
if(pow(b,2)-4*a*c<0){
printf("方程没有实数根。");
return 0;
}
*/
p=-b/(2*a);
q=sqrt(pow(b,2)-4*a*c)/(2*a);
x1=p+q;
x2=p-q;
printf("方程的两个根为为:x1=%f,x2=%f",x1,x2);
return 0;
}
程序的执行结果如下:
3、输入三角形的三个边长,求三角形的面积。
已经三角形的三边长 a、b、c,则三角形的面积公式为:area=sqrt(s*(s-a)*(s-b)*(s-c)),其中:s=(a+b+c)/2。程序如下:
#include<stdio.h>
#include<math.h>
int main() {
float a,b,c,s,area;
printf("请输入三角形的三个边的边长:");
scanf("%f,%f,%f",&a,&b,&c);
/* 判断输入的三个边能否构造一个三角形
if((a+b<=c)||(b+c<=a)||(a+c<=b)){
printf("边长有误,请重新输入!");
return 0;
}
*/
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("三角形的面积为:%f",area);
return 0;
}
程序的执行结果如下:
4、存款利息计算1
假设有 100 万存款,一年期存款利率 2.15 %,一年到期后的本息自动续存一年期定期,求 10 年后的利息。
利息计算公式:1000000*(1+p)^n(p——利率,n——年数)
程序如下:
#include<stdio.h>
#include<math.h>
int main() {
int n=10;
float rate=0.0215,interest;
interest=1000000*(pow((1+rate),n)-1);
printf("100万存款,年利率2.15%,10年后的利息为:%f",interest);
return 0;
}
程序的执行结果如下:
5、存款利息计算2
假定银行存款的利率如下:
一年期定期:2.25%;二年期定期:2.75%;三年期定期:3.25%;五年期定期:3.35%
有 100 万存款,需要存入银行 5 年,有以下几种方案:
(1)一次存入五年;
(2)先存两年,到期后将本息再存三年;
(3)先存三年,到期后将本息再存两年;
(4)存一年,到期后将本息再存一年,连续存五次。
请计算每种方案的存款利息。
程序如下:
#include<stdio.h>
#include<math.h>
int main() {
int n=10;
float p=1000000,interest[4];
float rate[4]={0.0225,0.0275,0.032,0.0335};
interest[0]=p*5*rate[3];//方案一
interest[1]=p*(1+2*rate[1])*(1+3*rate[2])-p;//方案二
interest[2]=p*(1+3*rate[2])*(1+2*rate[1])-p;//方案三
interest[3]=p*pow((1+rate[0]),5)-p;//方案四
printf("方案一的存款利息为:%f\n",interest[0]);
printf("方案二的存款利息为:%f\n",interest[1]);
printf("方案三的存款利息为:%f\n",interest[2]);
printf("方案四的存款利息为:%f\n",interest[3]);
return 0;
}
程序的执行结果如下:
6、字符型数据的输出问题
字符型数据可以使用 %c 和 %d 格式输出。整型数据也可以使用 %c 和 %d 格式输出。
程序如下:
#include<stdio.h>
#include<math.h>
int main() {
int a=97,x=156;
char ch='A';
printf("%d,%c\n",a,a);
printf("%d,%c\n",ch,ch);
printf("%d,%c\n",x,x);//只有0~127之间的整数才能输出为字符
return 0;
}
程序的执行结果如下:
7、scanf 函数的各种输入格式
有如下程序:
#include<stdio.h>
#include<math.h>
int main() {
int a,b;
float x,y;
char ch1,ch2;
scanf("a=%d b=%d",&a,&b);
scanf("%f %e",&x,&y);
scanf("%c %c",&ch1,&ch2);
printf("a=%d,b=%d,\nx=%f,y=%f,\nch1=%c,ch2=%c\n",a,b,x,y,ch1,ch2);
return 0;
}
程序的执行结果如下:
说明:在输入实数 x 和 y 的值后应立即输入字符型数据,不应输入空格或回车。否则空格或回车会被存入字符型变量 ch1。输入空格的结果如下:
输入回车的结果如下:
8、对字符型数据进行运算
编写程序对字符串 “China” 加密,加密原则是:用原来的字母后面第 4 个字母代替原来的字母。例如,字母 A 后面第 4 个字母是 E,用 E 代替 A。程序如下:
#include<math.h>
int main() {
char str[6]="China";
str[0]+=4;
str[1]+=4;
str[2]+=4;
str[3]+=4;
str[4]+=4;
printf("China加密结果为:%s\n",str);
return 0;
}
程序的执行结果如下: