求C语言习题解答 10

1.学生成绩统计:从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:(1)统计不及格人数并打印不及格学生名单;(2... 1.学生成绩统计:
从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:
(1)统计不及格人数并打印不及格学生名单;
(2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;
(3)统计各分数段的学生人数及所占的百分比。
2. 输入一个正整数n(1<n<=10),再输入n个整数,输出最大值及其下标(设最大值唯一,下标从0开始)。
输入输出示例:
Input n:5
Input 5 integers:1 2 5 4 0
max=5,index=2(说明:最大值5的下标是2)
4.设有下列矩阵:
A =
编写程序,用二维数组存储矩阵元素,从键盘输入数据,将矩阵转置后按行输出。
展开
 我来答
张欣玥张鑫淼
2012-11-21
知道答主
回答量:9
采纳率:0%
帮助的人:5.7万
展开全部
1、
#include <stdio.h>#define STU 30#define COURSE 3void Input(long num[ ],int score[ ][COURSE],int n);void GetSumAver(int score[ ][COURSE],int n,int sum[ ],float aver[ ]);void Sort(long num[ ],int score[ ][COURSE],int n,int sum[ ],float aver[ ]);void Print(long num[ ],int score[ ][COURSE],int n,int sum[ ],float aver[ ]);int Search(long num[ ], int n, long x);main(){int n, score[STU][COURSE], sum[STU], pos;long num[STU], x;float aver[STU];printf("Please enter the total number of the students(n<=30):");scanf("%d", &n); /*输入参加考试的学生人数*/printf("Enter No. and score as: MT EN PH\n");Input(num, score, n); /*输入学生成绩*/GetSumAver(score, n, sum, aver); /*计算总分和平均分*/printf("Before sort:\n");Print(num, score, n, sum, aver);Sort(num, score, n, sum, aver); /*排名次*/printf("After sort:\n");Print(num, score, n, sum, aver);printf("Please enter searching number:");scanf("%ld", &x); /*以长整型格式输入待查找学生的学号*/pos = Search(num, n, x); /*名次查询*/if (pos != -1){printf("position:\t NO \t MT \t EN \t PH \t SUM \t AVER\n");printf("%8d\t%4ld\t%4d\t%4d\t%4d\t%5d\t%5.0f\n", pos+1,num[pos], score[pos][0],score[pos][1], score[pos][2], sum[pos],aver[pos]);}else{printf("Not found!\n");}}/* 函数功能:输入某班学生学号及期末考试三门课程成绩 函数参数:长整型数组num,存放学生学号 整型数组score,存放学生成绩 整型变量n,存放学生人数 函数返回值:无*/void Input(long num[ ], int score[ ][COURSE], int n){int i, j;for (i=0; i<n; i++){scanf("%ld", &num[i]);for (j=0; j<COURSE; j++){scanf("%d", &score[i][j]);}}}/* 函数功能:计算每个学生的总分和平均分 函数参数:整型数组score,存放学生成绩 整型变量n,存放学生人数 整型数组sum,计算得到的每个学生的总分 实型数组aver,计算得到的每个学生的平均分 函数返回值:无*/void GetSumAver(int score[ ][COURSE], int n, int sum[ ], float aver[ ]){int i, j;for (i=0; i<n; i++){sum[i] = 0;for (j=0; j<COURSE; j++){sum[i] = sum[i] + score[i][j];}aver[i] = (float)sum[i] / COURSE;}}/* 函数功能:按总分成绩由高到低排出成绩的名次 函数参数:长整型数组num,存放学生学号 整型数组score,存放学生成绩 整型变量n,存放学生人数 整型数组sum,存放每个学生的总分实型数组aver,存放每个学生的平均分 函数返回值:无*/void Sort(long num[ ],int score[ ][COURSE], int n, int sum[ ], float aver[ ]){int i, j, k, m;int temp1;long temp2;float temp3;for (i=0; i<n-1; i++){k = i;for (j=i+1; j<n; j++){if (sum[j] > sum[k]) k = j;}if (k != i){temp1 = sum[k]; sum[k] = sum[i]; sum[i] = temp1;temp2 = num[k]; num[k] = num[i]; num[i] = temp2;temp3 = aver[k]; aver[k] = aver[i]; aver[i] = temp3;for (m=0; m<COURSE; m++){temp1 = score[k][m];score[k][m] = score[i][m];score[i][m] = temp1;}}}}/* 函数功能: 打印名次表,表格内包括学生编号、各科分数、总分和平均分 函数参数: 长整型数组num,存放学生学号 整型数组score,存放学生成绩 整型变量n,存放学生人数 整型数组sum,存放每个学生的总分 实型数组aver,存放每个学生的平均分 函数返回值:无*/void Print(long num[ ], int score[ ][COURSE], int n,int sum[ ], float aver[ ]){int i, j;printf(" NO \t| MT \t EN \t PH \t SUM \t AVER\n");printf("----------------------------------------------------\n");for (i=0; i<n; i++){printf("%ld\t| ", num[i]);for (j=0; j<COURSE; j++){printf("%4d\t", score[i][j]);}printf("%5d\t%5.0f\n", sum[i], aver[i]);}}/* 函数功能:在学号数组中顺序查找学生的学号 函数参数:长整型数组num,存放学生学号 整型变量n,存放学生人数长整型变量x,存放待查找学生的学号 函数返回值:找到时,返回学生学号在学号数组中的下标位置,否则返回值-1*/int Search(long num[ ], int n, long x){int i;for (i=0; i<n; i++){if (num[i] == x) return(i);}return (-1);}
4、答案:#include <stdio.h>
void main()
{ int i , j;
double a[3][4], b[4][3];
printf("请输入原始矩阵:\n");
for(i=0;i<3; i++)
for( j=0; j<4 ; j++)
scanf ("%lf", &a[i][j]);
printf("计算转置矩阵:\n");
for(i=0;i<3; i++)
for( j=0; j<4 ; j++) b[j][i]=a[i][j];
printf("输出原始矩阵:\n");
for(i=0;i<3; i++)
{
for( j=0; j<4 ; j++) printf(" %10.2f ",a[i][j]);
printf("\n");
}
printf("输出转置矩阵:\n");
for(i=0;i<4; i++)
{
for( j=0; j<3 ; j++) printf(" %10.2f ",b[i][j]);
printf("\n");
}
}
亨利拿球
2012-11-19 · TA获得超过237个赞
知道答主
回答量:222
采纳率:0%
帮助的人:120万
展开全部
三道题 就给10分
一是嫌少
二是劝你还是自己好好看看数组,自己学着写点代码,这都是最基础的算数,少玩会游戏,少上会网,少逛会街,每天花点时间自习就能搞懂的,自己能写出代码,多好,别管有多简单
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刀下风
2012-11-19 · 超过26用户采纳过TA的回答
知道答主
回答量:129
采纳率:0%
帮助的人:56.2万
展开全部
确实, 这三题难倒是不难, 就是写起来特麻烦,分太少了没兴趣了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式