c語(yǔ)言100個(gè)經(jīng)典例題(c語(yǔ)言經(jīng)典編程題)
夕逆IT
- 數(shù)據(jù)庫(kù)
- 2023-08-13
- 313

大家好,今天來(lái)為大家解答c語(yǔ)言100個(gè)經(jīng)典例題這個(gè)問(wèn)題的一些問(wèn)題點(diǎn),包括c語(yǔ)言經(jīng)典編程題也一樣很多人還不知道,因此呢,今天就來(lái)為大家分析分析,現(xiàn)在讓我們一起來(lái)看看吧!如...
大家好,今天來(lái)為大家解答c語(yǔ)言100個(gè)經(jīng)典例題這個(gè)問(wèn)題的一些問(wèn)題點(diǎn),包括c語(yǔ)言經(jīng)典編程題也一樣很多人還不知道,因此呢,今天就來(lái)為大家分析分析,現(xiàn)在讓我們一起來(lái)看看吧!如果解決了您的問(wèn)題,還望您關(guān)注下本站哦,謝謝~
c語(yǔ)言100行簡(jiǎn)單一點(diǎn)的代碼
#include<malloc.h>
#include<stdio.h>
#include<stdlib.h>
#defineLENsizeof(structscorenode)
#defineDEBUG
#include<string.h>
structscorenode
{intnumber;/*學(xué)號(hào)*/
charname[10];/*姓名*/
floatyuwen;/*語(yǔ)文成績(jī)*/
floatyingyu;/*英語(yǔ)成績(jī)*/
floatshuxue;/*數(shù)學(xué)成績(jī)*/
structscorenode*next;
};
typedefstructscorenodescore;
intn,k;/*n,k為全局變量,本程序中的函數(shù)均可以使用它*/
/*==============================================================================================*/
score*creat2311(void)
/*函數(shù)creat2311,功能:創(chuàng)建鏈表,此函數(shù)帶回一個(gè)指向鏈表頭的指針*/
{
score*head;
score*p1,*p2,*p3,*max;
inti,j;
floatfen;
chart[10];
n=0;
p1=p2=p3=(score*)malloc(LEN);head=p3;/*開(kāi)辟一個(gè)新單元*/
printf("請(qǐng)輸入學(xué)生資料,輸0退出!\n");
repeat1:printf("請(qǐng)輸入學(xué)生學(xué)號(hào)(學(xué)號(hào)應(yīng)大于0):");/*輸入學(xué)號(hào),學(xué)號(hào)應(yīng)大于0*/
scanf("%d",&p1->number);
while(p1->number<0)
{getchar();
printf("輸入錯(cuò)誤,請(qǐng)重新輸入學(xué)生學(xué)號(hào):");
scanf("%d",&p1->number);}
/*輸入學(xué)號(hào)為字符或小于0時(shí),程序報(bào)錯(cuò),提示重新輸入學(xué)號(hào)*/
if(p1->number==0)
gotoend;/*當(dāng)輸入的學(xué)號(hào)為0時(shí),轉(zhuǎn)到末尾,結(jié)束創(chuàng)建鏈表*/
else
{
p3=head;
if(n>0)
{for(i=0;i<n;i++)
{if(p1->number!=p3->number)
p3=p3->next;
else
{printf("學(xué)號(hào)重復(fù),請(qǐng)重輸!\n");
gotorepeat1;
/*當(dāng)輸入的學(xué)號(hào)已經(jīng)存在,程序報(bào)錯(cuò),返回前面重新輸入*/
}
}
}
}
printf("請(qǐng)輸入學(xué)生姓名:");
scanf("%s",&p1->name);/*輸入學(xué)生姓名*/
printf("請(qǐng)輸入語(yǔ)文成績(jī)(0~100):");/*輸入語(yǔ)文成績(jī),成績(jī)應(yīng)在0-100*/
scanf("%f",&p1->yuwen);
while(p1->yuwen<0||p1->yuwen>100)
{getchar();
printf("輸入錯(cuò)誤,請(qǐng)重新輸入語(yǔ)文成績(jī)");/*輸入錯(cuò)誤,重新輸入語(yǔ)文成績(jī)直到正確為止*/
scanf("%f",&p1->yuwen);}
printf("請(qǐng)輸入英語(yǔ)成績(jī)(0~100):");/*輸入英語(yǔ)成績(jī),成績(jī)應(yīng)在0-100*/
scanf("%f",&p1->yingyu);
while(p1->yingyu<0||p1->yingyu>100)
{getchar();
printf("輸入錯(cuò)誤,請(qǐng)重新輸入英語(yǔ)成績(jī)");/*輸入錯(cuò)誤,重新輸入英語(yǔ)成績(jī)直到正確為止*/
scanf("%f",&p1->yingyu);}
printf("請(qǐng)輸入數(shù)學(xué)成績(jī)(0~100):");/*輸入數(shù)學(xué)成績(jī),成績(jī)應(yīng)在0-100*/
scanf("%f",&p1->shuxue);
while(p1->shuxue<0||p1->shuxue>100)
{getchar();
printf("輸入錯(cuò)誤,請(qǐng)重新輸入數(shù)學(xué)成績(jī)");
scanf("%f",&p1->shuxue);}/*輸入錯(cuò)誤,重新輸入數(shù)學(xué)成績(jī)直到正確為止*/
p1=head;
p0=stu;
if(head==NULL)
{head=p0;p0->next=NULL;}/*當(dāng)原來(lái)鏈表為空時(shí),從首結(jié)點(diǎn)開(kāi)始存放資料*/
else/*原來(lái)鏈表不為空*/
{
if(p1->next==NULL)/*找到原來(lái)鏈表的末尾*/
{
p1->next=p0;
p0->next=NULL;/*將它與新開(kāi)單元相連接*/
}
else
{
while(p1->next!=NULL)/*還沒(méi)找到末尾,繼續(xù)找*/
{
p2=p1;p1=p1->next;
}
p1->next=p0;
p0->next=NULL;
}
}
n=n+1;
p1=head;
p0=stu;
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
max=p1;
p1=p1->next;
if(max->number>p1->number)
{
k=max->number;
max->number=p1->number;
p1->number=k;
/*交換前后結(jié)點(diǎn)中的學(xué)號(hào)值,使得學(xué)號(hào)大者移到后面的結(jié)點(diǎn)中*/
strcpy(t,max->name);
strcpy(max->name,p1->name);
strcpy(p1->name,t);
/*交換前后結(jié)點(diǎn)中的姓名,使之與學(xué)號(hào)相匹配*/
fen=max->yuwen;
max->yuwen=p1->yuwen;
p1->yuwen=fen;
/*交換前后結(jié)點(diǎn)中的語(yǔ)文成績(jī),使之與學(xué)號(hào)相匹配*/
fen=max->yingyu;
max->yingyu=p1->yingyu;
p1->yingyu=fen;
/*交換前后結(jié)點(diǎn)中的英語(yǔ)成績(jī),使之與學(xué)號(hào)相匹配*/
fen=max->shuxue;
max->shuxue=p1->shuxue;
p1->shuxue=fen;
/*交換前后結(jié)點(diǎn)中的數(shù)學(xué)成績(jī),使之與學(xué)號(hào)相匹配*/
}
}
max=head;p1=head;/*重新使max,p指向鏈表頭*/
}end2:
printf("現(xiàn)在的學(xué)生數(shù)為:%d個(gè)!\n",n);
return(head);
}
/*==============================================================================================*/
/*==============================================================================================*/
score*search2311(score*head)
/*函數(shù)search2311,功能:查詢(xún)學(xué)生成績(jī)*/
{intnumber;
score*p1,*p2;
printf("輸入要查詢(xún)的學(xué)生的學(xué)號(hào),");
scanf("%d",&number);
while(number!=0)
{
if(head==NULL)
{printf("\n沒(méi)有任何學(xué)生資料!\n");return(head);}
printf("-----------------------------------------\n");
printf("|學(xué)號(hào)\t|姓名\t|語(yǔ)文\t|英語(yǔ)\t|數(shù)學(xué)\t|\n");
printf("-----------------------------------------\n");/*打印表格域*/
p1=head;
while(number!=p1->number&&p1->next!=NULL)
{p2=p1;p1=p1->next;}
if(number==p1->number)
{printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|\n",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue);
printf("-----------------------------------------\n");}/*打印表格域*/
else
printf("%d不存在此學(xué)生!\n",number);
printf("輸入要查詢(xún)的學(xué)生的學(xué)號(hào),");
scanf("%d",&number);
}
printf("已經(jīng)退出了!\n");
return(head);}
c語(yǔ)言題目:10名評(píng)委給一名比賽選手打分。要求用3個(gè)函數(shù)實(shí)現(xiàn)
#include
#include
inta[100];
intmain()
{
inti,n,x;
intmax=0,min=10000;
printf("請(qǐng)輸入幾個(gè)評(píng)委:
");
scanf("%d",&n);
intsum=0;
for(i=1;ia[i])min=a[i];
sum=a[i];
}
sum-=max-min;//減去最高分和最低分(前提評(píng)委數(shù)大于2)
doubleavg=double(sum)/(n-2);//平均分
min=100000;
for(i=1;ifabs(a[i]-avg))
{
min=fabs(a[i]-avg);
x=i;
}
}
printf("第%d評(píng)委與平均分最接近
",x);
return0;
}。
c語(yǔ)言填空題和改錯(cuò)題技巧
以下是一些技巧和建議:
填空題技巧:
1.仔細(xì)閱讀題目:確保你完全理解題目要求和上下文背景。
2.分析代碼邏輯:根據(jù)已有的代碼和題目要求,推理出缺失部分的代碼邏輯。
3.注意語(yǔ)法和語(yǔ)義:填寫(xiě)的代碼應(yīng)符合C語(yǔ)言的語(yǔ)法規(guī)則,并且邏輯上與原代碼一致。
4.考慮邊界情況:考慮特殊情況和邊界條件,確保填寫(xiě)的代碼在各種情況下都能正確運(yùn)行。
改錯(cuò)題技巧:
1.仔細(xì)分析錯(cuò)誤:確定代碼中的錯(cuò)誤類(lèi)型,例如語(yǔ)法錯(cuò)誤、邏輯錯(cuò)誤或者運(yùn)行時(shí)錯(cuò)誤。
2.逐行檢查代碼:從頭到尾仔細(xì)檢查代碼,查找可能存在的錯(cuò)誤。
3.理解錯(cuò)誤提示:如果編譯器或調(diào)試器提供了錯(cuò)誤提示信息,仔細(xì)閱讀并理解其中的提示,它們可能會(huì)指引你找到錯(cuò)誤的位置。
4.運(yùn)行代碼進(jìn)行調(diào)試:嘗試運(yùn)行代碼,觀察程序的行為并使用調(diào)試工具進(jìn)行逐步調(diào)試,以便找到錯(cuò)誤所在。
5.測(cè)試和排除錯(cuò)誤:通過(guò)輸入不同的測(cè)試數(shù)據(jù),觀察代碼的輸出和行為,逐步排除錯(cuò)誤并修復(fù)代碼。
總的來(lái)說(shuō),對(duì)于填空題和改錯(cuò)題,理解題目要求、熟悉C語(yǔ)言的語(yǔ)法和邏輯,并進(jìn)行仔細(xì)的檢查和測(cè)試是關(guān)鍵。不斷練習(xí)和積累經(jīng)驗(yàn)也能提高解決這類(lèi)問(wèn)題的能力。
c語(yǔ)言題目:有13個(gè)人圍成一圈,順序排號(hào),報(bào)數(shù),凡報(bào)到3的就退出,問(wèn)最后留下來(lái)的是原來(lái)第幾號(hào)的那位
#include
intmain()
{
inta[13]={0},*p=&a[12],i=1,*p1;
while(1)
{
do{
p++;
p=a+(p-a)%13;//指針p超出數(shù)組范圍時(shí)自動(dòng)回0
}
while((*p)==1);//如果成員是被踢出的則繼續(xù)順延
if(p1==p)break;elsep1=p;//當(dāng)只剩一個(gè)成員時(shí)候跳出
if(i++%3==0)*p=1;//指針指到的成員出局
}
printf("最后剩下第%d個(gè)人",p1-a+1);
return0;
}
c語(yǔ)言拍照搜題軟件哪個(gè)好
大學(xué)c語(yǔ)音搜題APP是一款主要為現(xiàn)代的大學(xué)生提供的教學(xué)軟件,特別適合于大學(xué)理科類(lèi)的學(xué)生,關(guān)于各種計(jì)算機(jī),各種機(jī)械設(shè)計(jì),或者是其他涉及到計(jì)算規(guī)則C語(yǔ)言方面的教程都可以在這個(gè)平臺(tái)上面進(jìn)行搜索相關(guān)的題目解析,以及各種教程資料。
c語(yǔ)言中值得討論的話(huà)題
C語(yǔ)言作為當(dāng)今世界最流行和最重要的語(yǔ)言之一,有許多值得討論的話(huà)題,大致可以分為以下幾類(lèi):
一是學(xué)習(xí)類(lèi),就是討論如何才能學(xué)好C語(yǔ)言,如何解決C語(yǔ)言編程過(guò)程中的各類(lèi)問(wèn)題等,二是前途類(lèi),就是討論學(xué)習(xí)C語(yǔ)言可以找到哪些好的工作,可以發(fā)揮什么樣的作用,崗位薪資等話(huà)題。希望以上回答可以幫助到您。
關(guān)于c語(yǔ)言100個(gè)經(jīng)典例題的內(nèi)容到此結(jié)束,希望對(duì)大家有所幫助。
本文鏈接:http://m.tiantaijiaoyu.cn/su/1517.html