導航:首頁 > 編程語言 > c語言程序設計第八章答案

c語言程序設計第八章答案

發布時間:2023-07-28 10:54:08

❶ c語言程序設計答案

#include "stdio.h"
#include <stdlib.h>
#define SIZE 10

struct student{
char id[20];
char name[20];
int score[3];
int all;
float average;
} stud[SIZE];

void input() /* 輸入學生的信息 */
{
int i;

for(i=0;i<SIZE;i++)
{
printf("第%d個學生的信息:\n",i+1);
scanf("%s%s%d%d%d",stud[i].id,stud[i].name,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);
}
}

void average() /* 每個學生總成績、平均成績和所有學生的總成績 */
{
int i,all=0;

for(i=0;i<SIZE;i++)
{
stud[i].all=stud[i].score[0]+stud[i].score[1]+stud[i].score[2];
stud[i].average=stud[i].all/3.0;
all+=stud[i].all;
}
for(i=0;i<SIZE;i++)
printf("%s %s %d %d %d %d %3.1f\n",stud[i].id,stud[i].name,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].all,stud[i].average);
printf("總平均成績:%3.1f\n",all/30.0);
}

void maximum() /* 排序輸出最高分的學生信息 */
{
int i,j;
struct student temp;

for(i=0;i<SIZE;i++)
{
for(j=0;j<SIZE-i-1;j++)
{
if(stud[j].all<stud[j+1].all)
{
temp=stud[j];
stud[j]=stud[j+1];
stud[j+1]=temp;
}
}
}
printf("\n%s %s %d %d %d \n",stud[0].id,stud[0].name,stud[0].score[0],stud[0].score[1],stud[0].score[2]);
}

void main()
{
input();
average();
maximum();
}

❷ 誰有c語言程序設計蘇小紅版第8單元課後實驗題答案

#include <stdio.h>
#define N 30
int Average(int score[], int n); /* Average()函數原型 */
void ReadScore(int score[], long num[],int n); /* ReadScore()函數原型 */
void DataSort(int score[], long num[], int n);
void PrintScore(int score[], long num[], int n);
void DataNum(int score[], long num[], int n);
void PrintNum(int score[], long num[], int n);
void SearchNum(int score[],long num[],int n);
void Statistics(int score[], int n);
void List(int score[], long num[], int n);
int main()
{
int choice,n,score[N], aver=0,i,sum=0;
long num[N];
do
{
printf("1: Append record\n");
printf("2: Caculate total and average score of course\n");
printf("3: Sort in descending order by score\n");
printf("4: Sort in ascending order by number\n");
printf("5: Search by number\n");
printf("6: Statistic analysisc\n");
printf("7: List record\n");
printf("0: Exit\n");
scanf("%d",&choice);
switch(choice)
{
case 1:printf("Total students are:");
scanf("%d",&n);
ReadScore (score,num,n);
break;
case 2:aver = Average(score, n);
printf("Average score is %d\n",aver);
for (i=0; i<n; i++)
{
sum += score[i];
}
printf("Caculate total score is %d\n",sum);
break;
case 3:DataSort(score,num,n);
printf("Sorted scores :\n");
printf(" number: score: \n");
PrintScore(score,num,n);
break;
case 4:DataNum(score,num,n);
printf("Sorted number :\n");
printf(" number: score: \n");
PrintNum(score,num,n);
break;
case 5:SearchNum(score,num,n);
break;
case 6:Statistics(score, n);
break;
case 7:List(score,num,n);
break;
case 0:break;
}
}while(choice!=0);
return 0;
}
/* 1、函數功能:輸入n個學生的學號及某門課成績 */
void ReadScore(int score[], long num[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("Input student's ID and score:");
scanf("%ld%d",&num[i],&score[i]);
}
}
/* 2、函數功能:計算課程的總分和平均分 */
int Average(int score[], int n) /* Average()函數定義 */
{
int i, sum = 0;
for (i=0; i<n; i++)
{
sum += score[i];
}
return sum / n;
}
/* 3、函數功能:成績由高到低排序 */
void DataNum(int score[], long num[], int n)
{
int i,j,k,temp1;
long temp2;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if (score[j]>score[k])
{
k=j;
}
}
if(k!=i)
{
temp1=score[k];score[k]=score[i];score[i]=temp1;
temp2=num[k];num[k]=num[i];num[i]=temp2;
}
}
}
/* 函數功能:顯示排序後學生學號和成績 */
void PrintNum(int score[], long num[], int n)
{
int i;
for(i=0;i<n;i++)
{
printf(" %10ld %4d\n",num[i],score[i]);
}
}
/* 4、函數功能:學號由小到大排序 */
void DataSort(int score[], long num[], int n)
{
int i,j,k,temp1;
long temp2;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if (num[j]<num[k])
{
k=j;
}
}
if(k!=i)
{
temp1=num[k];num[k]=num[i];num[i]=temp1;
temp2=score[k];score[k]=score[i];score[i]=temp2;
}
}
}
/* 函數功能:顯示排序後學生學號和成績 */
void PrintScore(int score[], long num[], int n)
{
int i;
for(i=0;i<n;i++)
{
printf(" %10ld %4d\n",num[i],score[i]);
}
}
/* 5、函數功能:按學號查詢學生排名及其成績*/
void SearchNum(int score[],long num[],int n)
{
long number;
int i;
printf("Please input the number you want to search:");
scanf("%ld",&number);
for(i=0;i<n;i++)
{
if(num[i]==number)
{
printf(" %ld %d\n",num[i],score[i]);
return;
}
}
printf("\nNot found!\n");
}
/* 6、函數功能:統計個人類別的人數以及所佔的百分比*/
void Statistics(int score[], int n)
{
int i,a=0,b=0,c=0,d=0,e=0;
for(i=0;i<n;i++)
{
if(score[i]>=90)
{
a++;
}
else if(score[i]>=80)
{
b++;
}
else if(score[i]>=70)
{
c++;
}
else if(score[i]>=60)
{
d++;
}
else
{
e++;
}
}
printf("優秀人數:%d\t占:%.3f%%\n良好人數:%d\t占:%.3f%%\n中等人數:%d\t占:%.3f%%\n及格人數:%d\t占:%.3f%%\n不及格人數:%d\t占:%.3f%%\n",a,(float)100*a/n,b,(float)100*b/n,c,(float)100*c/n,d,(float)100*d/n,e,(float)100*e/n);
}
/* 7、函數功能:輸入學生學號、成績、總分、平均分*/
void List(int score[], long num[], int n)
{
int i, j=0;
for(i=0;i<n;i++)
{
printf("學號:%ld\t考試成績:%d\n",num[i],score[i]);
j+=score[i];
}
printf("課程總分:%d\n平均分:%.3f\n",j,(float)j/n);
}

❸ C語言程序設計!求解釋!

輸入12和8,賦值給num1和num2。即:num1=12,num2=8
num1大於num2時,交換。即:num1=8,num2=12
a=num1; b=num2;即:a=8,b=12
while(b!=0)
{temp=a%b; a=b;b=temp;}當b不為0時循環:
第一次:temp=8%12=8,a=12,b=8
第二次:temp=12%8=4,a=8,b=4
第三次:temp=4%4=0,a=4,b=0
輸出a=4

閱讀全文

與c語言程序設計第八章答案相關的資料

熱點內容
網路數據用不成怎麼回事 瀏覽:135
applepayiphone5 瀏覽:71
word2010製作日歷 瀏覽:491
為什麼微信字顯示不全 瀏覽:761
香港蘋果官網怎麼預定iphone 瀏覽:844
文件目錄索引包括哪些 瀏覽:794
感情不要冷處理的微信個性簽名 瀏覽:54
機器人怎麼在電腦上編程 瀏覽:197
如何辨別購物的網站 瀏覽:13
喜歡編程嗎喜歡什麼語言 瀏覽:841
cad迷你看圖軟體怎麼刪除文件 瀏覽:267
看視頻寫文件格式 瀏覽:2
大數據平台怎麼審綠 瀏覽:398
java打包教程 瀏覽:787
電腦有多少個文件夾 瀏覽:1
dnf86版本極限光強 瀏覽:974
國考資料分析哪裡來的數據 瀏覽:87
文件拷貝到u盤以後md5變化 瀏覽:281
kali中pdf攻擊文件生成 瀏覽:507
專利檢索如何找到最接近對比文件 瀏覽:673

友情鏈接