c語言編程題,c語言編程題目網站

本文目錄一覽:

C語言編程題 求代碼

#include stdio.h

#include string.h

int n;

struct Student {

int no;

char name[10];

int score[5];

int sum;

int average;

}student[100000];

void Sort(Student *s){

for(int i=0;in;i++)

for(int j=i+1;jn;j++){

if(s[j].sums[i].sum){

char ns[100];

strcpy(ns,s[i].name);

strcpy(s[i].name,s[j].name);

strcpy(s[j].name,ns);

int snum=s[i].sum,save=s[i].average;

s[i].sum=s[j].sum,s[i].average=s[j].average;

s[j].sum=snum,s[j].average=save;

}

}

}

void printInfo() {

for (int i = 0; i n; i++) {

printf(“%s,%d,%d\n”,  student[i].name, student[i].sum, student[i].average);

}

}

int main()

{

printf(“請輸入學生的數量n:”);

scanf(“%d”,n);

for (int i = 0; i n; i++) {

printf(“請分別輸入第%d名同學的id,名字,成績1,成績2,成績3,成績4”, i + 1);

scanf(“%d%s%d%d%d%d”, student[i].no, student[i].name, student[i].score[0], student[i].score[1], student[i].score[2],student[i].score[3]);

student[i].sum=student[i].score[0]+student[i].score[1]+student[i].score[2]+student[i].score[3];

student[i].average=student[i].sum/4;

}

Sort(student);

printInfo();

return 0;

}

c語言編程100題,有沒有大神幫幫忙

您好,c語言經典100題:

【程序1】

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

都是多少

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

掉不滿足條件的排列.

2.程序源代碼:

main()

{

int

i,j,k;

printf(“\n”);

for(i1;i5;i++)

/*以下為三重循環*/

for(j1;j5;j++)

for

(k1;k5;k++)

{

if

(i!ki!jj!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.程序分析:請利用數軸來分界,定位.注意定義時需把獎金定義成長整型.

2.程序源代碼:

main()

{

long

int

i;

int

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

scanf(“%ld”,i);

bonus1100000*0.1;bonus2bonus1+100000*0.75;

bonus4bonus2+200000*0.5;

bonus6bonus4+200000*0.3;

bonus10bonus6+400000*0.15;

if(i100000)

bonusi*0.1;

else

if(i200000)

bonusbonus1+(i-100000)*0.075;

else

if(i400000)

bonusbonus2+(i-200000)*0.05;

else

if(i600000)

bonusbonus4+(i-400000)*0.03;

else

if(i1000000)

bonusbonus6+(i-600000)*0.015;

else

bonusbonus10+(i-1000000)*0.01;

printf(“bonus%d”,bonus);

}

【程序3】

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

1.程序分析:在10萬以內判斷,先將該數加上100後再開方,再將該數加上268後再開方,如果開方後

的結果滿足如下條件,即是結果.請看具體分析:

2.程序源代碼:

#include

“math.h”

main()

{

long

int

i,x,y,z;

for

(i1;i2)/*如果是閏年且月份大於2,總天數應該加一天*/

sum++;

printf(“it

is

the

%dth

day.”,sum);}

【程序4】

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

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

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

2.程序源代碼:

main()

{

int

day,month,year,sum,leap;

printf(“\nplease

input

year,month,day\n”);

scanf(“%d,%d,%d”,year,month,day);

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

{

case

1:sum0;break;

case

2:sum31;break;

case

3:sum59;break;

case

4:sum90;break;

case

5:sum120;break;

case

6:sum151;break;

case

7:sum181;break;

case

8:sum212;break;

case

9:sum243;break;

case

10:sum273;break;

case

11:sum304;break;

case

12:sum334;break;

default:printf(“data

error”);break;

}

sumsum+day;

/*再加上某天的天數*/

if(year%4000||(year%40year%100!0))/*判斷是不是閏年*/

leap1;

else

leap0;

if(leap1month2)/*如果是閏年且月份大於2,總天數應該加一天*/

sum++;

printf(“It

is

the

%dth

day.”,sum);}

【程序5】

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

1.程序分析:我們想辦法把最小的數放到x上,先將x與y進行比較,如果xy則將x與y的值進行交換,

然後再用x與z進行比較,如果xz則將x與z的值進行交換,這樣能使x最小.

2.程序源代碼:

main()

{

int

x,y,z,t;

scanf(“%d%d%d”,x,y,z);

if

(xy)

{tx;xy;yt;}

/*交換x,y的值*/

if(xz)

{tz;zx;xt;}/*交換x,z的值*/

if(yz)

{ty;yz;zt;}/*交換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】

題目:輸出特殊圖案,請在c環境中運行,看一看,very

beautiful!

1.程序分析:字元共有256個.不同字元,圖形不一樣.

2.程序源代碼:

#include

“stdio.h”

main()

{

char

a176,b219;

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

(i1;i10;i++)

{

for(j1;j10;j++)

{

resulti*j;

printf(“%d*%d%-3d”,i,j,result);/*-3d表示左對齊,佔3位*/

}

printf(“\n”);/*每一行後換行*/

}

}

【程序9】

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

1.程序分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格.

2.程序源代碼:

#include

“stdio.h”

main()

{

int

i,j;

for(i0;i8;i++)

{

for(j0;j8;j++)

if((i+j)%20)

printf(“%c%c”,219,219);

else

printf(“

“);

printf(“\n”);

}

}

【程序10】

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

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

2.程序源代碼:

#include

“stdio.h”

main()

{

int

i,j;

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

for(i1;i11;i++)

{

for(j1;ji;j++)

printf(“%c%c”,219,219);

printf(“\n”);

}

}

【程序11】

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

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

1.程序分析:

兔子的規律為數列1,1,2,3,5,8,13,21….

2.程序源代碼:

main()

{

long

f1,f2;

int

i;

f1f21;

for(i1;i20;i++)

{

printf(“%12ld

%12ld”,f1,f2);

if(i%20)

printf(“\n”);/*控制輸出,每行四個*/

f1f1+f2;

/*前兩個月加起來賦值給第三個月*/

f2f1+f2;

/*前兩個月加起來賦值給第三個月*/

}

}

【程序12】

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

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

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

2.程序源代碼:

#include

“math.h”

main()

{

int

m,i,k,h0,leap1;

printf(“\n”);

for(m101;m200;m++)

{

ksqrt(m+1);

for(i2;ik;i++)

if(m%i0)

{leap0;break;}

if(leap)

{printf(“%-4d”,m);h++;

if(h%100)

printf(“\n”);

}

leap1;

}

printf(“\nthe

total

is

%d”,h);

}

C語言編程題怎麼做?

#include stdio.h

int main()

{

void copy_m(char *p1, char *p2, int m);

char str1[100], *p1=str1, str2[100], *p2=str2;

int m;

printf(“請隨便輸入一個字元串:”);

gets(p1);

printf(“您輸入的字元串為:\n%s\n\n”, p1);

printf(“您打算從第幾個字元開始複製呢?\n”);

scanf(“%d”, m);

copy_m(p1, p2, m);

printf(“\n複製得到的另一個字元串為:\n%s”, p2);

return 0;

}

void copy_m(char *p1, char *p2, int m)

{

int i;

char *temp=p1+m-1;

for(;*temp!=’\0′;){

*p2++ = *temp++;

}

}

10道經典的C語言例題(含參考程序)

1.列印出所有的「水仙花數」,所謂「水仙花數」是指一個三位數,其各位數字立方和等於該數本身。例如,153是一個「水仙花數」,因為153=1^3+5^3+3^3。

#include

#include

int main()

{

int bai_wei,shi_wei,ge_wei,i,sum=0;

for(i=100;i1000;i++)

{

bai_wei=i/100;

shi_wei=(i%100)/10;

ge_wei=i%10;

if(i==pow(bai_wei,3)+pow(shi_wei,3)+pow(ge_wei,3))

{

printf(“%d “,i);

sum++;

if(sum%5==0)

printf(” “);

}

}

printf(” “);

return 0;

}

2.請輸入任意兩個整數x和y,求其最大公約數和最小公倍數。

#include

int main()

{

int x,y,min,max,i;

printf(“請輸入任意兩個整數:”);

scanf(“%d%d”,x,y);

min=xy?y:x;

max=xy?x:y;

for(i=min;i0;i–)

if(x%i==0y%i==0)

{

printf(“這兩個整數的最大公約數為:%d “,i);

break;

}

for(i=max;i=x*y;i++)

if(i%x==0i%y==0)

{

printf(“這兩個整數的最小公倍數為:%d “,i);

break;

}

return 0;

}

3.輸入一行字元,分別統計出其中英文字母、空格、數字和其它字元的個數。

#include

#include

#define N 50

int main()

{

int sum1=0,sum2=0,sum3=0,sum4,i=0;

char str[N];

printf(“請輸入一串字元串:”);

scanf(“%s”,str);

for(i=0;istrlen(str);i++) p=”” /strlen(str);i++)

{

if((str[i]=’a’str[i]=’A’str[i]=’Z’))

sum1++;

if(str[i]==’ ‘)

sum2++;

if(str[i]=’0’str[i]=’9′)

sum3++;

}

sum4=strlen(str)-sum1-sum2-sum3;

printf(“英文字母的個數:%d “,sum1);

printf(“空格的個數:%d “,sum2);

printf(“數字的個數:%d “,sum3);

printf(“其他符號的個數:%d “,sum4);

return 0;

}

4.求s=a+aa+aaa+aaaa+aa…a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加有鍵盤控制。

#include

#include

int main()

{

int a,n,s=0,i,x=0,y=0;

printf(“請輸入整數a的值:”);

scanf(“%d”,a);

printf(“請輸入相加的個數n:”);

scanf(“%d”,n);

for(i=0;in;i++) p=”” /n;i++)

{

x=y+2*pow(10,i);

y=x;

s=s+x;

}

printf(“s=%d “,s);

return 0;

}

5.一個數如果恰好等於它的因子之和,這個數就稱為「完數」。例如6=1+2+3。編程找出1000以內的所有完數。

#include

int main()

{

int sum=0,i,j;

printf(“在1000以內的完數有:”);

for(i=2;i=1000;i++)

{

for(j=1;ji;j++) p=”” /i;j++)

if(i%j==0)

sum=sum+j;

if(sum==i)

printf(“%d “,i);

sum=0;

}

printf(” “);

return 0;

}

6.輸入一個不多於5位的正整數,要求:1、求它是幾位數;2、逆序列印出個位數字。

#include

int pows(int a,int n)

{

int sum=1,i;

for(i=0;in;i++) p=”” /n;i++)

sum=sum*a;

return sum;

}

int main()

{

int n,i,k,x;

printf(“n=”);

scanf(“%d”,n);

for(i=1;i6;i++)

if(n/pows(10,i)==0)

{

printf(“%d “,i);

k=i;

break;

}

for(i=0;ik;i++) p=”” /k;i++)

{

x=n/pows(10,i)%10;

printf(“%d”,x);

}

printf(” “);

return 0;

}

7.輸入一個5位數,判斷它是不是迴文數。即12321是迴文數,個位與萬位相同,十位與千位相同。

#include

int main()

{

int n,a[5],i=0;

printf(“請輸入一個5位數:”);

scanf(“%d”,n);

while(n!=0)

{

a[i]=n%10;

n=n/10;

i++;

}

if(a[0]==a[4]a[1]==a[3])

printf(“這個數是迴文數 “);

else

printf(“這個數不是迴文數 “);

return 0;

}

8.利用遞歸演算法,將所輸入的5個字元,以相反順序列印出來。

#include

void digui(char a[],int n)

{

if(n==1)

printf(“%c”,a[0]);

else

{

printf(“%c”,a[n-1]);

digui(a,n-1);

}

}

int main()

{

char str[5];

printf(“請輸入5個字元:”);

scanf(“%s”,str);

digui(str,5);

printf(” “);

return 0;

}

9.有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13…球出這個序列的前20項之和。

#include

int main()

{

int i,a=1,b=1;

float sum=0.0;

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

{

sum=sum+(float)(a+i)/b;

b=a+i;

a=i;

}

printf(“sum=%f “,sum);

return 0;

}

10.利用遞歸演算法求5!。

#include

int digui(int n)

{

if(n==1)

return 1;

else

return n*digui(n-1);

}

int main()

{

int n,sum;

printf(“n:”);

scanf(“%d”,n);

sum=digui(n);

printf(“sum=%d “,sum);

return 0;

}

c語言編程題

#include

#include

#include

#include

#include

//定義二叉樹節點數據結構

typedef

struct

node{

struct

node

*lchild;

char

data;

struct

node

*rchild;

}bitnode,*bitree;

//構造截取子串函數,start從零開始.

char

*get_substr(char

*strDest,int

start,int

end)

{

if(startend)

return

NULL;

//如果左子樹或右子樹為空則返回空串

char

*strSub;

//字串指針

strSub=(char*)malloc((end-start+2)*sizeof(char));

int

i;

for(i=start;i=end;i++)

strSub[i-start]=strDest[i];

strSub[end-start+1]=’\0′;

return

strSub;

}

//前序遍歷二叉樹,並輸出

void

preorder_traverse(bitree

bt){

if(bt

!=

NULL)

{

printf(“%c”,bt-data);

preorder_traverse(bt-lchild);

preorder_traverse(bt-rchild);

}

}

//根據中序和後序遍歷結果遞歸構造二叉樹,並返回根指針

bitree

create_bitree(char

*inorder,char

*postorder)

//inorder和postoeder分別為中序和後序遍歷的結果字元串

{

if(inorder==NULL

||

postorder==NULL)

return

NULL;

//空串則返回空樹

char

root_data;//根節點字元

char

*lchild_instr,*lchild_postr,*rchild_instr,*rchild_postr;//左子樹和右子樹中序及後序字元串

int

i,len;

len=strlen(inorder);

//中序和後序字元串長度相等

bitree

new_bitree=(bitree)malloc(sizeof(bitnode));

root_data=postorder[len-1];//樹的根節點必然為中序遍歷的最後一個字元

new_bitree-data=root_data;

for(i=0;ilen;i++)

//找到根節點在中序遍歷中位置

{

if(inorder[i]==root_data)

break;

}

//確定左子樹和右子樹中序及後序字元串

lchild_instr=get_substr(inorder,0,i-1);

lchild_postr=get_substr(postorder,0,i-1);

rchild_instr=get_substr(inorder,i+1,len-1);

rchild_postr=get_substr(postorder,i,len-2);

//遞歸構造子樹

new_bitree-lchild=create_bitree(lchild_instr,lchild_postr);

new_bitree-rchild=create_bitree(rchild_instr,rchild_postr);

return

new_bitree;

}

void

main(){

char

inorder[20]=”BDCEAFHG”;

char

postorder[20]=”DECBHGFA”;

bitree

root;

root=create_bitree(inorder,postorder);

//輸出前序遍歷結果

printf(“the

binary

tree

in

preorder

is:\n”);

preorder_traverse(root);

_getch();

}

//滿意的話別忘了多加點分哈

原創文章,作者:QKDV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/137072.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
QKDV的頭像QKDV
上一篇 2024-10-04 00:17
下一篇 2024-10-04 00:17

相關推薦

  • Python爬蟲可以爬哪些網站

    Python是被廣泛運用於數據處理和分析領域的編程語言之一。它具有易用性、靈活性和成本效益高等特點,因此越來越多的人開始使用它進行網站爬取。本文將從多個方面詳細闡述,Python爬…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • 網站為什麼會被黑客攻擊?

    黑客攻擊是指利用計算機技術手段,入侵或者破壞計算機信息系統的一種行為。網站被黑客攻擊是常見的安全隱患之一,那麼,為什麼網站會被黑客攻擊呢?本文將從不同角度分析這個問題,並且提出相應…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • 如何用Python訪問網站

    本文將從以下幾個方面介紹如何使用Python訪問網站:網路請求、POST請求、用戶代理、Cookie、代理IP、API請求。 一、網路請求 Python有三種主流的網路請求庫:ur…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28

發表回復

登錄後才能評論