7个C语言小程序让你快速入门程序世界
1、題目:有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少?
程序分析:可填在百位、十位、個位的數(shù)字都是1、2、3、4。組成所有的排列后再去掉不滿足條件的排列。
程序源代碼:
#include#includeint?main(){int?i,?j,?k;printf("\n");for?(i?=?1;?i?<?5;?i++)/*以下為三重循環(huán)*/for?(j?=?1;?j?<?5;?j++)for?(k?=?1;?k?<?5;?k++){if?(i?!=?k?&&?i?!=?j?&&?j?!=?k)?/*確保i、j、k三位互不相同*/printf("%d,%d,%d\n",?i,?j,?k);}system("pause");return?0;}2、題目:企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤(I)低于或等于10萬元時,獎金可提10%;利潤高 于10萬元,低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的部分,可可提 成7.5%;20萬到40萬之間時,高于20萬元的部分,可提成5%;40萬到60萬之間時高于40萬元的部分,可提成3%;60萬到100萬之間時,高于60萬元的部分,可提成1.5%,高于100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當(dāng)月利潤I,求應(yīng)發(fā)放獎金總數(shù)?
程序分析:請利用數(shù)軸來分界,定位。注意定義時需把獎金定義成長整型。
程序源代碼:
#include#includeint main() { { ?long int i; ?int bonus1, bonus2, bonus4, bonus6, bonus10, bonus; ?scanf("%ld", &i); ?bonus1 = 100000 * 0.1; bonus2 = bonus1 + 100000 * 0.75; ?bonus4 = bonus2 + 200000 * 0.5; ?bonus6 = bonus4 + 200000 * 0.3; ?bonus10 = bonus6 + 400000 * 0.15; ?if (i <= 100000) ? bonus = i * 0.1; ?else if (i <= 200000) ? bonus = bonus1 + (i - 100000)*0.075; ?else if (i <= 400000) ? bonus = bonus2 + (i - 200000)*0.05; ?else if (i <= 600000) ? bonus = bonus4 + (i - 400000)*0.03; ?else if (i <= 1000000) ? bonus = bonus6 + (i - 600000)*0.015; ?else ? bonus = bonus10 + (i - 1000000)*0.01; ?printf("bonus=%d", bonus); } system("pause"); return 0; }
3、題目:一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問該數(shù)是多少?
程序分析:在10萬以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后 的結(jié)果滿足如下條件,即是結(jié)果。
程序源代碼:
#include?#include#includeint?main(void){long?int?i,?x,?y,?z;for?(i?=?1;?i?<?100000;?i++){x?=?sqrt(i?+?100);/*x為加上100后開方后的結(jié)果*/y?=?sqrt(i?+?268);/*y為再加上168后開方后的結(jié)果*/if?(x*x?==?i?+?100?&&?y*y?==?i?+?268)/*如果一個數(shù)的平方根的平方等于該數(shù),這說明此數(shù)是完全平方數(shù)*/printf("\n%ld\n",?i);}system("pause");return?0;}4、題目:輸入某年某月某日,判斷這一天是這一年的第幾天?
程序分析:以3月5日為例,應(yīng)該先把前兩個月的加起來,然后再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大于3時需考慮多加一天。
程序源代碼:
#include#includeint?main(void){int?day,?month,?year,?sum,?leap;printf("\nplease?input?year,month,day\n");scanf("%d,%d,%d",?&year,?&month,?&day);switch?(month)/*先計算某月以前月份的總天數(shù)*/{case?1:sum?=?0;?break;case?2:sum?=?31;?break;case?3:sum?=?59;?break;case?4:sum?=?90;?break;case?5:sum?=?120;?break;case?6:sum?=?151;?break;case?7:sum?=?181;?break;case?8:sum?=?212;?break;case?9:sum?=?243;?break;case?10:sum?=?273;?break;case?11:sum?=?304;?break;case?12:sum?=?334;?break;default?:printf("data?error");?break;}sum?=?sum?+?day;/*再加上某天的天數(shù)*/if?(year?%?400?==?0?||?(year?%?4?==?0?&&?year?%?100?!=?0))/*判斷是不是閏年*/leap?=?1;elseleap?=?0;if?(leap?==?1?&&?month?>?2)/*如果是閏年且月份大于2,總天數(shù)應(yīng)該加一天*/sum++;printf("It?is?the?%dth?day.",?sum);system("pause");return?0;}5、題目:輸入三個整數(shù)x,y,z,請把這三個數(shù)由小到大輸出。
程序分析:我們想辦法把最小的數(shù)放到x上,先將x與y進(jìn)行比較,如果x>y則將x與y的值進(jìn)行交換,然后再用x與z進(jìn)行比較,如果x>z則將x與z的值進(jìn)行交換,這樣能使x最小。
程序源代碼:
#include#includeint main(void) { int x, y, z, t; scanf_s("%d%d%d", &x, &y, &z); if (x > y) ?/*交換x,y的值*/ ?if (x > z) ? /*交換x,z的值*/ ? if (y > z) ? ?/*交換z,y的值*/ ? ?printf("small to big: %d %d %d\n", x, y, z); system("pause"); return 0; }
6、題目:用*號輸出字母C的圖案。
程序分析:可先用<|>*<|>號在紙上寫出字母C,再分行輸出。
程序源代碼:
#include#includeint main(void) { printf("Hello C-world!\n"); printf(" ****\n"); printf(" *\n"); printf(" * \n"); printf(" ****\n"); system("pause"); return 0; }
7、題目:輸出9*9口訣。
程序分析:分行與列考慮,共9行9列,i控制行,j控制列。
程序源代碼:
#include#includeint?main(void){int?i,?j,?result;printf("\n");for?(i?=?1;?i?<?10;?i++){for?(j?=?1;?j?<?10;?j++){result?=?i?*?j;printf("%d*%d=%-3d",?i,?j,?result);/*-3d表示左對齊,占3位*/}printf("\n");/*每一行后換行*/}system("pause");return?0;}敲代碼一定要多敲多想
在小伙伴思考的同時加深理解
一定不要只是干巴巴的照敲喲!
聲明:
本文于網(wǎng)絡(luò)整理,版權(quán)歸原作者所有,如來源信息有誤或侵犯權(quán)益,請聯(lián)系我們刪除或授權(quán)事宜。
總結(jié)
以上是生活随笔為你收集整理的7个C语言小程序让你快速入门程序世界的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果iPhone手机开通自动充值 App
- 下一篇: C语言程序判断计算机的CPU大小端