3.3 程序舉例
3.3 程序舉例
【例3.5】 已知a=5.0,b=2.5,c=7.8,計(jì)算
程序代碼如下:
#include "stdio.h"
#define PI 3.14
main( )
{
float a=5.0,b=2.5,c=7.8,y;
y=PI*a*b/(a+b*c);
printf("y=%f\n",y);
}
程序運(yùn)行結(jié)果為:
y=1.602041
【例3.6】 從鍵盤輸入兩個(gè)整數(shù)賦給變量a和b,要求交換變量a和b中的值。
分析:定義3個(gè)整型變量a、b、t,a和b兩個(gè)變量分別存儲(chǔ)從鍵盤輸入的兩個(gè)整數(shù),這兩個(gè)整數(shù)可以調(diào)用scanf( )函數(shù)實(shí)現(xiàn)輸入。交換a和b中值的方法是,首先將a中的值用臨時(shí)變量t保存起來(在此可通過賦值語句“t=a;”來實(shí)現(xiàn)),然后將b的值賦給a(即“a=b;”),再把保存在臨時(shí)變量t中的值賦給b(即“b=t;”)。根據(jù)此思路編寫程序代碼如下:
#include "stdio.h"
main( )
{
int a,b,t;
scanf("%d%d",&a,&b);
printf("a=%d,b=%d\n",a,b);
t=a;a=b;b=t;
printf("a=%d,b=%d\n",a,b);
}
程序運(yùn)行結(jié)果為:
輸入:22 66<Enter>
輸出: a=22,b=66
a=66,b=22
【例3.7】 從鍵盤輸入一個(gè)大寫字母,要求改用小寫字母輸出,并輸出大寫字母和小寫字母的ASCII碼值。
分析:定義c1、c2兩個(gè)字符型變量來分別存儲(chǔ)大寫字母和小寫字母,大寫字母可以用getchar( )函數(shù)實(shí)現(xiàn)輸入。大小寫字母間轉(zhuǎn)換的方法前面已經(jīng)介紹過。根據(jù)此思路編寫程序代碼如下:
#include "stdio.h"
main( )
{
char c1,c2;
c1=getchar( );
printf("%c,%d\n",c1,c1);
c2=c1+32;
printf("%c,%d\n",c2,c2);
}
程序運(yùn)行結(jié)果為:
輸入: A<Enter>
輸出: A, 65
a, 97
【例3.8】 設(shè)一元二次方程為ax2+bx+c=0,輸入3個(gè)系數(shù)a、b、(c 設(shè)a不為0,且b2>4ac),求兩個(gè)實(shí)根。
分析:定義變量a、b、c為實(shí)型,代表方程的3個(gè)系數(shù),可以用scanf( )函數(shù)實(shí)現(xiàn)數(shù)據(jù)的輸入;定義x1、x2兩個(gè)實(shí)型變量來存儲(chǔ)兩個(gè)實(shí)數(shù)根。
一元二次方程的求根公式為:
#include "stdio.h"
#include "math.h"
main( )
{
float a,b,c,x1,x2;
scanf("%f%f%f",&a,&b,&c);
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("x1=%5.2f\nx2=%5.2f\n",x1,x2);
}
程序運(yùn)行結(jié)果為:
輸入:2.3 6.7 3.1<Enter>
輸出: x1=-0.58
x2=-2.34
本例中,sqrt( )是求平方根函數(shù),其頭文件為math.h,所以在程序的開頭加#include "math.h"語句。
從本節(jié)的例題可以看出,順序程序結(jié)構(gòu)是一種按照語句書寫順序執(zhí)行的簡(jiǎn)單的程序結(jié)構(gòu),可解決一些簡(jiǎn)單的問題。