导航:首页 > 编程语言 > 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语言程序设计第八章答案相关的资料

热点内容
奥维地图怎么设置网络叠加 浏览:407
linux加载库文件so失败 浏览:714
大家都想要的app 浏览:58
程序员比特币 浏览:568
mysqlfrm是什么文件 浏览:665
win10点击文件夹声音消失 浏览:963
苹果手机空白文件名 浏览:833
linuxmv覆盖合并文件夹 浏览:932
不开访客网络怎么联网 浏览:631
win10的软件卸载 浏览:779
crv汽车自带网络怎么打开 浏览:973
食品原材料到什么网站购买 浏览:649
一年级的小孩子学编程怎么样 浏览:863
ic考勤机怎么导出数据 浏览:922
网站设计编程如何开始学习 浏览:749
淘宝代码隐藏导航不见了 浏览:7
macbookpro如何修改文件内容 浏览:965
java稳定排序 浏览:53
oppo文件管理的图片 浏览:335
plc编程步数怎么计算 浏览:142

友情链接