c語言這10個(gè)小程序堪稱經(jīng)典,必須收藏~

程序1

題目:有1、2、3、4個(gè)數(shù)字,能組成多少個(gè)互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少??

1.程序分析:

可填在百位、十位、個(gè)位的數(shù)字都是1、2、3、4。組成所有的排列后再去掉不滿足條件的排列。?

2.程序源代碼:

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);?

    }?

}?

程序2

題目:企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤(I)低于或等于10萬元時(shí),獎金可提10%;利潤高于10萬元,低于20萬元時(shí),低于10萬元的部分按10%提成,高于10萬元的部分,可可提成7.5%;20萬到40萬之間時(shí),高于20萬元的部分,可提成5%;40萬到60萬之間時(shí)高于 40萬元的部分,可提成3%;60萬到100萬之間時(shí),高于60萬元的部分,可提成1.5%,高于100萬元時(shí),超過100萬元的部分按1%提成,從鍵盤輸入當(dāng)月利潤I,求應(yīng)發(fā)放獎金總數(shù)??小編推薦一個(gè)學(xué)C/C++的學(xué)習(xí)裙【六二七,零一二,四六四】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有很多干貨和技術(shù)分享!


1.程序分析:

請利用數(shù)軸來分界,定位。注意定義時(shí)需把獎金定義成長整型。


2.程序源代碼:?

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);?

}?

程序3

題目:一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上168又是一個(gè)完全平方數(shù),請問該數(shù)是多少??

1.程序分析:

在10萬以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后的結(jié)果滿足如下條件,即是結(jié)果。

2.程序源代碼:?

#include "math.h"?

main()?

{?

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)/*如果一個(gè)數(shù)的平方根的平方等于該數(shù),這說明此數(shù)是完全平方數(shù)*/?

    printf("\n%ld\n",i);?

  }?

}?


程序4

題目:輸入某年某月某日,判斷這一天是這一年的第幾天??

1.程序分析:

以3月5日為例,應(yīng)該先把前兩個(gè)月的加起來,然后再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大于3時(shí)需考慮多加一天。


2.程序源代碼:

main()?

{?

int day,month,year,sum,leap;?

printf("\nplease input year,month,day\n");?

scanf("%d,%d,%d",&year,&month,&day);?

switch(month)/*先計(jì)算某月以前月份的總天數(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;?

 defaultrintf("data error");break;?

}?

sum=sum+day;  /*再加上某天的天數(shù)*/?

 if(year%400==0||(year%4==0&&year%100!=0))/*判斷是不是閏年*/?

  leap=1;?

 else?

  leap=0;?

if(leap==1&&month>2)/*如果是閏年且月份大于2,總天數(shù)應(yīng)該加一天*/?

sum++;?

printf("It is the %dth day.",sum); }?

程序5

題目:輸入三個(gè)整數(shù)x,y,z,請把這三個(gè)數(shù)由小到大輸出。?

1.程序分析:

我們想辦法把最小的數(shù)放到x上,先將x與y進(jìn)行比較,如果x>y則將x與y的值進(jìn)行交換,然后再用x與z進(jìn)行比較,如果x>z則將x與z的值進(jìn)行交換,這樣能使x最小。?

2.程序源代碼:?

main()?

{?

int x,y,z,t;?

scanf("%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);?

}?

程序6

題目:用*號輸出字母C的圖案。?

1.程序分析:

可先用<|>*<|>號在紙上寫出字母C,再分行輸出。?

2.程序源代碼:?

#include "stdio.h"?

main()?

{?

printf("Hello C-world!\n");?

printf(" ****\n");?

printf(" *\n");?

printf(" * \n");?

printf(" ****\n");?

}?

程序7

題目:輸出特殊圖案,請?jiān)赾環(huán)境中運(yùn)行,看一看,Very Beautiful!?

1.程序分析:

字符共有256個(gè)。不同字符,圖形不一樣。


2.程序源代碼:?

#include "stdio.h"?

main()?

{?

char a=176,b=219;?

printf("%c%c%c%c%c\n",b,a,a,a,b);?

printf("%c%c%c%c%c\n",a,b,a,b,a);?

printf("%c%c%c%c%c\n",a,a,b,a,a);?

printf("%c%c%c%c%c\n",a,b,a,b,a);?

printf("%c%c%c%c%c\n",b,a,a,a,b); }?

程序8

題目:輸出9*9口訣。?

1.程序分析:

分行與列考慮,共9行9列,i控制行,j控制列。


2.程序源代碼:?

#include "stdio.h"?

main()?

{?

 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");/*每一行后換行*/?

   }?

}?

程序9

題目:要求輸出國際象棋棋盤。?

1.程序分析:

用i控制行,j來控制列,根據(jù)i+j的和的變化來控制輸出黑方格,還是白方格。?

2.程序源代碼:?

#include "stdio.h"?

main()?

{?

int i,j;?

for(i=0;i<8;i++)?

 {?

  for(j=0;j<8;j++)?

   if((i+j)%2==0)?

    printf("%c%c",219,219);?

   else?

    printf(" ");?

   printf("\n");?

  }?

}?

程序10

題目:打印樓梯,同時(shí)在樓梯上方打印兩個(gè)笑臉。?

1.程序分析:用i控制行,j來控制列,j根據(jù)i的變化來控制輸出黑方格的個(gè)數(shù)。?

2.程序源代碼:?

#include "stdio.h"?

main()?

{?

int i,j;?

printf("\n");/*輸出兩個(gè)笑臉*/?

for(i=1;i<11;i++)?

 {?

 for(j=1;j<=i;j++)?

   printf("%c%c",219,219);?

 printf("\n");?

  }?

}?


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容