當前位置:編程學習大全網 - 編程語言 - 需c語言編程實例100例 發到 zhushi8886@163.com

需c語言編程實例100例 發到 zhushi8886@163.com

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

1.程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去

掉不滿足條件的排列。

程序1程序源代碼:

main()

{

int i,j,k;

printf("\n");

for(i=1;i<5;i++) /*以下為三重循環*/

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

題目:企業發放的獎金根據利潤提成。利潤(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%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?

1.程序分析:請利用數軸來分界,定位。註意定義時需把獎金定義成長整型。

第1個程序代碼不要復制到工具中編譯,有可能網頁上的空格也算數

下面的應該沒問題了,我會盡力調試好的.

程序2代碼:

#include "stdio.h"

void main()

{ long int i;

double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;

scanf("%ld",&i);

bonus1=100000*0.1;

bonus2=bonus1+100000*0.075;

bonus4=bonus2+200000*0.05;

bonus6=bonus4+200000*0.03;

bonus10=bonus6+400000*0.015;

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:

題目:壹個整數,它加上100後是壹個完全平方數,再加上168又是壹個完全平方數,請問該數是多少?

#include "stdio.h"

#include "math.h"

void main()

{

long int x,y,i;

for (i=0;i<=100000;i++)

{x=sqrt(i+100); /*x為加上100後開方的結果*/

y=sqrt(i+268); /*y為x加上168後開方的結果*/

if (x*x==i+100&&y*y==i+268)

printf ("%ld",i);

}

}

程序4

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

1.程序分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊

情況,閏年且輸入月份大於3時需考慮多加壹天。

#include "stdio.h"

void main()

{

int day,mouth,year,sum,leap;

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

scanf("%d,%d,%d",&year,&mouth,&day);

switch (mouth) /*先計算某月以前月份的總天數*/

{

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; /* 再加上某天的天數*/

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

leap=1;

else

leap=0;

if (leap==1&&mouth>2)/*如果是閏年且月份大於2,總數天數應該加1*/

sum++;

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

}

程序5

題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。

1.程序分析:我們想辦法把最小的數放到x上,先將x與y進行比較,如果x>y則將x與y的值進行交換,然後再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小。

#include "stdio.h"

void main()

{

int x,y,z,t;

printf("請輸入3個整數:\n");

scanf("%d,%d,%d",&x,&y,&z);

if (x>y)

{t=x;x=y;y=x;}

if (x>z)

{t=x;x=z;z=t;}

if (y>z)

{t=y;y=z;z=t;}

printf("妳輸入3個數從小到大的順序為:%d,%d,%d\n",x,y,z);

}

程序6

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

1.程序分析:可先用'*'號在紙上寫出字母C,再分行輸出。

不要說簡單哦,慢慢來,熟能生巧嘛~~~~~~~~

#include "stdio.h"

void main ()

{

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

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

printf (" *\n");

printf (" *\n");

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

}

下面這壹題我運行的時候處出現幾個漢字外,並沒有像題目說的那樣Very Beautiful!.同誌們看看妳們的結果是什麽.

程序7

題目:輸出特殊圖案,請在c環境中運行,看壹看,Very Beautiful!

1.程序分析:字符***有256個。不同字符,圖形不壹樣。

#include "stdio.h"

void 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控制列。

#include "stdio.h"

void 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來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格。

#include "stdio.h"

void 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

題目:打印樓梯,同時在樓梯上方打印兩個笑臉。

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

include "stdio.h"

void main()

{

int i,j;

printf("\1 \1\n"); /*輸出兩個笑臉*/

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

{

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

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

printf("\n");

}

}

經典c程序100例==11--20

程序11

題目:古典問題:有壹對兔子,從出生後第3個月起每個月都生壹對兔子,小兔子長到第三個月

後每個月又生壹對兔子,假如兔子都不死,問每個月的兔子總數為多少?

1.程序分析: 兔子的規律為數列1,1,2,3,5,8,13,21....

呵呵~~多謝支持,以後多來阿~~~~~~~~~~~~

好的現在讓我們來討論第11題吧~

這個題目是求Fibonacci數列40個數.其實我們分析壹下這個數有如下特點:第1,2個數為1,1.從第3個數開始,該數是其前面倆個數之和.即:

F1=1 (n=1)

F2=1 (n=2)

Fn=Fn-1+Fn-2 (n>=3)

分析到這我們做題目就不會有多大的難度了 :

11題程序為:

main()

{

long int f1,f2;

int i;

f1=1;f2=1;

for (i=1;i<=20;i++)

{printf("%12ld%12ld",f1,f2);

if(i%2==0)printf("\n");

f1=f1+f2;

f2=f1+f2;}

}

程序12

題目:判斷101-200之間有多少個素數,並輸出所有素數。

1.程序分析:判斷素數的方法:用壹個數分別去除2到sqrt(這個數),如果能被整除,

則表明此數不是素數,反之是素數。

#include "stdio.h"

#include "math.h"

void main ()

{

int m,i,k,h=0,leap=1;

printf("\n");

for (m=101;m<=200;m++)

{k=sqrt(m+1);

for(i=2;i<=k;i++)

if(m%i==0)

{leap=0;break;}

if(leap)

{printf("%-4d",m);

h++;

if(h%10==0)

printf("\n");

}leap=1;

}

printf("\nThe total is %d",h);

}

程序13

題目:打印出所有的"水仙花數",所謂"水仙花數"是指壹個三位數,其各位數字立方和等於該數

本身。例如:153是壹個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。

1.程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。

include "stdio.h"

void main ()

{

int i,j,k,n;

printf("'water flower 'number is :");

for(n=100;n<1000;n++)

{

i=n/100;

j=n/10-i*10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

printf("%4d",n);

}

printf("\n");

}

程序14

題目:將壹個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。

程序分析:對n進行分解質因數,應先找到壹個最小的質數k,然後按下述步驟完成:

(1)如果這個質數恰等於n,則說明分解質因數的過程已經結束,打印出即可。

(2)如果n<>k,但n能被k整除,則應打印出k的值,並用n除以k的商,作為新的正整數妳n,

重復執行第壹步。

(3)如果n不能被k整除,則用k+1作為k的值,重復執行第壹步。

#include "stdio.h"

void main()

{int n,i;

printf("\nplease input a number :\n");

scanf("%d",&n);

printf("%d=",n);

for(i=2;i<=n;i++)

{

while(n!=i)

{

if(n%i==0)

{printf("%d*",i);

n=n/i;

}

else

break;

}

}

printf("%d",n);

}

程序15

題目:利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,

60分以下的用C表示。

1.程序分析:(a>b)?a:b這是條件運算符的基本例子。

#include "stdio.h"

void main()

{int chji;

char biaosi;

printf("Please input a chji:\n");

scanf("%d",&chji);

biaosi=chji>=90?'A'chji>=60?'B':'C');

printf("%d belongs to %c\n",chji,biaosi);

}

程序16

題目:輸入兩個正整數m和n,求其最大公約數和最小公倍數

第16題

#include

#include

#include

#include "math.h"

main()

{

int a,b,c=1,i,temp;

printf("輸入2個正整數:");

scanf("%d%d",&a,&b);

if(a>b)

{

temp=a;

a=b;

b=temp;

}

for(i=2;i<=a;i++)

{

if(a%i==0&&b%i==0)

c=i;

}

if(c==1)

printf("沒有公約數\n");

else

printf("最大公約數為:%d\n",c);

printf("最小公倍數為:%d\n",a*b/c);

程序17

題目:輸入壹行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。

1.程序分析:利用while語句,條件為輸入的字符不為'\n'.

有什麽好的建議可以提啊,

#include "stdio.h"

void main()

{char c;

int letters=0,space=0,digit=0,others=0;

printf("please input some characters\n");

while ((c=getchar())!='\n')

{

if(c>='a'&&c<='z'||c>='A'&&c<'Z')

letters++;

else if(c==' ')

space++;

else if (c>='0'&&c<'9')

digit++;

else

others++;

}

printf("all in all:char=%d space=%d digit=%d others=%d\n",letters,space,digit,others);

}

程序18

題目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是壹個數字。例如2+22+222+2222+22222(此時

***有5個數相加),幾個數相加有鍵盤控制。

1.程序分析:關鍵是計算出每壹項的值。

18題

#include

void main()

{

int a,n,conut=1;

long int sn=0,tn=0;

printf("please input a and n\n");

scanf("%d,%d",&a,&n);

printf("a=%d,n=%d\n",a,n);

while (conut<=n)

{

tn=tn+a;

sn=sn+tn;

a=a*10;

++conut;

}

printf("%ld\n",sn);

}

程序19

題目:壹個數如果恰好等於它的因子之和,這個數就稱為"完數"。例如6=1+2+3.編程

找出1000以內的所有完數。

19

#include "stdio.h"

void main()

{

int i,j,n;

for(i=1;i<=1000;i++)

{

n=0;

for(j=1;j<I;J++)

if(i%j==0)

n+=j;

if(n==i)

{

for(j=1;j<I;J++)

{

if(i%j==0)

printf("%d+",j);

}

printf("\b=%d\n",i);

}

}

}

程序20

題目:壹球從100米高度自由落下,每次落地後反跳回原高度的壹半;再落下,求它在

第10次落地時,***經過多少米?第10次反彈多高?

#include "stdio.h"

void main()

{

float sn=100.0,hn=sn/2;

int n;

for(n=2;n<=10;n++)

{

sn=sn+2*hn;

hn=hn/2;

}

printf("the total of road is %f\n",sn);

printf("the high is %f meter\n",hn);

}

程序21

題目:猴子吃桃問題:猴子第壹天摘下若幹個桃子,當即吃了壹半,還不癮,又多吃了壹個

第二天早上又將剩下的桃子吃掉壹半,又多吃了壹個。以後每天早上都吃了前壹天剩下

的壹半零壹個。到第10天早上想再吃時,見只剩下壹個桃子了。求第壹天***摘了多少。

1.程序分析:采取逆向思維的方法,從後往前推斷。

記得上次說到21題:

#include

void main ()

{

int day,i,j;

day=9;

j=1;

while (day>0)

{

i=(j+1)*2;

j=i;

day--;

}

printf("the total is %d\n",i);

}

程序22

題目:兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定

比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程序找出

三隊賽手的名單。

1.程序分析:判斷素數的方法:用壹個數分別去除2到sqrt(這個數),如果能被整除,

則表明此數不是素數,反之是素數。

#include

void main ()

{

char i,j,k;/*i是a的對手,j是b的,k是c的*/

for (i='x';i<='z';i++)

for (j='x';j<='z';j++)

{if (i!=j)

for (k='x';k<='z';k++)

{if (i!=k&&j!=k)

{if (i!='x'&&k!='x'&&k!='z')

printf("order is a--%c\tb--%c\tc--%c\n",i,j,k);

}

}

}

}

程序23

題目:打印出如下圖案(菱形)

*

***

******

********

******

***

*

1.程序分析:先把圖形分成兩部分來看待,前四行壹個規律,後三行壹個規律,利用雙重

for循環,第壹層控制行,第二層控制列。

這個題用數組:

#include

void main ()

{

char lingxing[][7]={{' ',' ',' ','*'},{' ',' ','*','*','*'},{' ','*','*','*','*','*'},

{'*','*','*','*','*','*','*'},{' ','*','*','*','*','*'},{' ',' ','*','*','*'},{' ',' ',' ','*'}};

int i,j;

for (i=0;i<7;i++)

{ for (j=0;j<7;j++)

printf("%c",lingxing[i][j]);

printf("\n");

}

}

還可以這樣:#include

void main ()

{

int i,j,k;

for (i=0;i<=3;i++)

{

for (j=0;j=2-i;j++)

printf(" ");

for (k=0;k<=2*i;k++)

printf("*");

printf("\n");

}

for (i=0;i<=2;i++)

{

for (j=0;j<=i;j++)

printf(" ");

for (k=0;k<=4-2*i;k++)

printf("*");

printf("\n");

}

}

用函數調用也可以,自己試試.

程序24

題目:有壹分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數列的前20項之和。

1.程序分析:請抓住分子與分母的變化規律。

#include

void main ()

{int n,t,number=20;

float a=2,b=1,s=0;

for (n=1;n<=number;n++)

{

s+=a/b;

t=a;a+=b;b=t;//這壹步是關鍵

}

printf("sum is %9.6f\n",s);

}

程序25

題目:求1+2!+3!+...+20!的和

1.程序分析:此程序只是把累加變成了累乘。

#include

void main ()

{

float n,s=0,t=1;

for (n=1;n<=20;n++)

{

t*=n;

s+=t;

}

printf("1+2!...+20!=%e\n",s);

}

還要註意溢出,大家說壹下怎樣判斷.

還有下面的這個題<

程序26

題目:利用遞歸方法求5!。

1.程序分析:遞歸公式:fn=fn_1*4!

#include

void main ()

{

int i;

printf("請輸入求遞歸的數:\n");

scanf("%d",&i);

int fact (int );

printf("%d!=%d\n",i,fact(i));

}

int fact(int j)

{

int sum;

if (j==0)

sum=1;

else

sum=j*fact(j-1);

return sum;

}

考慮壹下怎樣判斷溢出呢?

程序27

題目:利用遞歸函數調用方式,將所輸入的5個字符,以相反順序打印出來。

#include

char a[5];

void f(int n)

{

if (n<5)

{

f(n+1);//註意這裏是重點。好好理解哦!

printf("%c",a[n]);

}

}

void main ()

{

printf("Input the string(lenth is 5):");

scanf("%s",a);

printf("After is :");

f(0);

}

程序28

題目:有5個人坐在壹起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第

3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第壹個人大兩歲。最後

問第壹個人,他說是10歲。請問第五個人多大?

28 題~

#include

age (int n)

{

int c;

if (n==1)

c=10;

else

c=age(n-1)+2;

return (c);

}

void main ()

{

printf("%d",age(5));

}

程序29

題目:給壹個不多於5位的正整數,要求:壹、求它是幾位數,二、逆序打印出各位數字。

#include

main( )

{

long a,b,c,d,e,x;

scanf("%ld",&x);

a=x/10000;/*分解出萬位*/

b=x%10000/1000;/*分解出千位*/

c=x%1000/100;/*分解出百位*/

d=x%100/10;/*分解出十位*/

e=x%10;/*分解出個位*/

if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);

else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);

else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);

else if (d!=0) printf("there are 2, %ld %ld\n",e,d);

else if (e!=0) printf(" there are 1,%ld\n",e);

}

程序30

題目:壹個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同。

#include

main( )

{

long a,b,c,d,e,x;

scanf("%ld",&x);

a=x/10000;/*分解出萬位*/

b=x%10000/1000;/*分解出千位*/

c=x%1000/100;/*分解出百位*/

d=x%100/10;/*分解出十位*/

e=x%10;/*分解出個位*/

if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);

else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);

else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);

else if (d!=0) printf("there are 2, %ld %ld\n",e,d);

else if (e!=0) printf(" there are 1,%ld\n",e);

}

程序30

題目:壹個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同。

#include

main( )

{

long ge,shi,qian,wan,x;

scanf("%ld",&x);

wan=x/10000;

qian=x%10000/1000;

shi=x%100/10;

ge=x%10;

if (ge==wan&&shi==qian)/*個位等於萬位並且十位等於千位*/

printf("this number is a huiwen\n");

else

printf("this number is not a huiwen\n");

}

程序31

題目:請輸入星期幾的第壹個字母來判斷壹下是星期幾,如果第壹個字母壹樣,則繼續

判斷第二個字母。

#include

#include "conio.h" //getch 的頭文件。

void main ()

{

char letter;

printf("Please input the first letter of someday\n");

while ((letter=getch())!='Y')

{switch (letter)

{

case 'S'rintf("please input second letter\n");

if ((letter=getch())='a')

printf("saturday\n");

else

if((letter=getch())='u')

printf("sunday\n");

else printf("data error\n");

break;

case 'F'rintf("friday\n");

break;

case 'M'rintf("monday\n");

break;

case 'T'rintf("please input second letter\n");

if((letter=getch())='h')

printf("thursday\n");

else

if ((letter=getch())='u')

printf("tuesday\n");

else printf("data error\n");

break;

case 'W'rintf("wednesday\n");

break;

defaultrintf("data error\n");

}

}

}

程序32

題目:Press any key to change color, do you want to try it. Please hurry up!

這個題目在TC中可以運行,在VC中運行不行,誰知道可以告訴我.謝謝!

2.程序源代碼:

#include

void main(void)

{

int color;

for (color = 0; color < 8; color++)

{

textbackground(color);/*設置文本的背景顏色*/

cprintf("This is color %d\r\n", color);

cprintf("Press any key to continue\r\n");

getch();/*輸入字符看不見*/

}

}

33題目:求100之內的素數

#include

#include "math.h"

void main ()

{

int m,i,k,h=0,leap=1;

printf("\n");

for (m=1;m<=100;m++)

{

k=sqrt(m+1);

for(i=2;i<=k;i++)

if (m%i==0)

{leap=0;break;}

if(leap)

{printf("%-4d",m);

h++;

if(h%10==0)

printf("\n");

}

leap=1;

}

printf("the total is %d",h);

}

  • 上一篇:數據庫的發展簡史
  • 下一篇:在教師節座談會上的發言
  • copyright 2024編程學習大全網