C語言學習(六)三種基本程式結構
例一:財務人員給員工發工資時經常遇到這樣一個問題,即根據每個人的工資額(以元作為單位)計算出各種面值的鈔票的張數,且要求總張數最少。
例如,某職工工資為3436元,發放方案為:100元34張,20元1張,10元1張,5元1張,1元1張。
#include <stdio.h>
int main()
{
int money;
int rmb100;
int rmb50;
int rmb20;
int rmb10;
int rmb5;
printf("please input your salary:");
scanf("%d",&money);
rmb100 = money / 100;
money %= 100;
rmb50 = money / 50;
money %= 50;
rmb20 = money / 20;
money %= 20;
rmb10 = money / 10;
money %= 10;
rmb5 = money / 5;
money %= 5;
printf("rmb100 = %d , rmb50 = %d , rmb20 = %d , rmb10 = %d,\
rmb5 = %d , rmb1 = %d\n",rmb100,rmb50,rmb20,rmb10,rmb5,money);
return 0;
}
例二:從鍵盤輸入一個大寫字母,要求改用小寫字母輸出。
#include <stdio.h>
char ch;
int main()
{
printf("please input a character:");
scanf("%c",&ch);
if(ch >= 'A'&& ch <= 'Z')
{
char ch_chang = ch + 32;
printf("ch_chang = %c\n",ch_chang);
}
else
{
printf("error\n");
}
return 0;
}
例三:輸入三個實數a,b,c,按代數值由小到大次序輸出這三個數。
#include <stdio.h>
float a,b,c;
int main()
{
printf("please input three num:");
scanf("%f %f %f",&a,&b,&c);
if(a > b)
{
float tmp = a;
a = b;
b = tmp;
}
if(c > a)
{
float tmp = c;
c = a;
a = tmp;
}
if(a > b)
{
float tmp = a;
a = b;
b = tmp;
}
printf("%5.1f %5.1f %5.1f\n",c,a,b);
return 0;
}
例四:寫程式,判某一年是否閏年。
輸入:年(year)
計算:判是否閏年
輸出:閏年或非閏年(leap)
閏年條件:
能被4整除,但不能被100整除。
能被4整除,又能被400整除。
#include <stdio.h>
int year;
int main()
{
int flag = 0;
printf("please input year:");
scanf("%d",&year);
if(0 == year % 4)
{
if(0 == year % 100)
{
if(0 == year % 400)
{
flag = 1;
}
}
else
flag = 1;
}
else
printf("it is not leap year\n");
if (1 == flag)
printf("it is leap year\n");
return 0;
}
例五:編寫一個能進行兩個運算元加減乘除四則運算的計數器模擬程式
輸入:兩個運算元和運算子
計算:根據運算子確定運算
輸出:運算結果
include <stdio.h>
float a,b;
char op;
int main()
{
printf("please input *** ");
scanf("%f%c%f",&a,&op,&b);
switch(op)
{
case '+':
printf("=%f\n",a+b);
break;
case '-':
printf("=%f\n",a-b);
break;
case '*':
printf("=%f\n",a*b);
break;
case '/':
if(0 == b)
{
printf("error\n");
}
else
{
printf("=%f\n",a/b);
}
break;
}
return 0;
}
例六:給出一百分制成績,要求輸出成績等級‘A’、’B’、‘C’、‘D’、‘E’。90分以上為‘A’ ,80~89分為’B’ ,70~79分為‘C’...
#include <stdio.h>
int score;
int main()
{
printf("please input score:");
scanf("%d",&score); //& can't forget
if(score > 100 || score < 0)//|| and && look careful
{
printf("error\n");
}
else
{
score /= 10;
switch (score)
{
case 10:
case 9:
printf("A\n");//more case
break;
case 8:
printf("B\n");
break;
case 7:
printf("C\n");
break;
case 6:
printf("D\n");
break;
default:
printf("E\n");
}
}
return 0;
}
例七:輸入:無
計算:1+2+3+L+100
輸出:計算的和
#include <stdio.h>
int n = 0;
int sum = 0;
int main()
{
while(n <= 100)
{
sum = sum + n;
n++;
}
printf("%d\n",sum);
return 0;
}
例八:計算一條語句中的空格、字母、數字的個數。
#include <stdio.h>
int x = 0;
int y = 0;
int z = 0;
char ch;
int main()
{
while(ch != '\n')
{
scanf("%c",&ch);
if((ch <= 'Z'&& ch >= 'A') ||(ch <= 'z' && ch >= 'a'))
{
x++;
}
if(ch == ' ')
{
y++;
}
if(ch <= '9' && ch >= '0')
{
z++;
}
}
printf("nonu= %d,character= %d,num= %d\n",y,x,z);
return 0;
}