通过编程输入并存储一个班10名同学某门课程的成绩,然后实现下列要求:
(1)函数1:输入每名同学的成绩,计算全班10名同学的总分和平均分,并输出总分、平均分;
(2)函数2:输出每名同学的成绩;
(3)函数3:查找出最高分和最低分,并输出最高分、最低分;
(4)函数4:将10名同学的成绩从低到高排序,并输出成绩排序情况
在你之前的楼上就有一模一样的,现成代码:
#include <iostream>
#include <algorithm>
using namespace std;
void inputScores(int scores[], int n) {
cout << "请输入" << n << "名同学的成绩:" << endl;
for (int i = 0; i < n; i++) {
cin >> scores[i];
}
}
void outputScores(int scores[], int n) {
cout << "10名同学的成绩为:" << endl;
for (int i = 0; i < n; i++) {
cout << scores[i] << " ";
}
cout << endl;
}
void calculateTotalAndAverage(int scores[], int n) {
int total = 0;
for (int i = 0; i < n; i++) {
total += scores[i];
}
double average = (double) total / n;
cout << "全班10名同学的总分为:" << total << endl;
cout << "全班10名同学的平均分为:" << average << endl;
}
void findMaxAndMin(int scores[], int n) {
int maxScore = *max_element(scores, scores + n);
int minScore = *min_element(scores, scores + n);
cout << "全班10名同学的最高分为:" << maxScore << endl;
cout << "全班10名同学的最低分为:" << minScore << endl;
}
void sortScores(int scores[], int n) {
sort(scores, scores + n);
cout << "全班10名同学的成绩从低到高排序为:" << endl;
for (int i = 0; i < n; i++) {
cout << scores[i] << " ";
}
cout << endl;
}
int main() {
int scores[10];
inputScores(scores, 10);
outputScores(scores, 10);
calculateTotalAndAverage(scores, 10);
findMaxAndMin(scores, 10);
sortScores(scores, 10);
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void input(int* p) {
for (int i = 0; i < 10; ++i, ++p) {
printf("请输入第%d个数的值\n", i + 1);
scanf("%d", p);
}
}
void print(int* p) {
for (int i = 0; i < 10; ++i, ++p) {
printf("%d ", *p);
}
printf("\n");
}
void fun(int* q) {
int* p = q;
int* minp = p;
int* maxp = p;
int temp;
for (int i = 1; i < 10; ++i, ++p) {
if (*maxp < *p) {
maxp = p;
}
if (*minp > *p) {
minp = p;
}
}
temp = *maxp;
*maxp = *p;
*p = temp;
temp = *minp;
*minp = *q;
*q = temp;
}
void main() {
int arr[10];
int* p = arr;
input(p);
print(p);
fun(p);
print(p);
system("pause");
}
段落2: 请您帮我编写一个C程序,用函数实现以下功能:通过编程输入并存储一个班10名同学某门课程的成绩,接下来实现下列要求: (1)函数1:输入每名同学的成绩,计算全班10名同学的总分和平均分,并输出总分、平均分; (2)函数2:输出每名同学的成绩; (3)函数3:查找出最高分和最低分,并输出最高分、最低分; (4)函数4:将10名同学的成绩从低到高排序,并输出成绩排序情况 具体实现:
#include<stdio.h>
#include<stdlib.h>
#define N 10
void input(int* p) {//输入函数
printf("请输入10名同学的成绩:\n");
for (int i = 0; i < N; ++i, ++p) {
scanf("%d", p);
}
}
void print(int* p) {//输出每名同学成绩函数
for (int i = 0; i < N; ++i, ++p) {
printf("第%d名同学的成绩为:%d\n", i + 1, *p);
}
}
void total(int* p) {//计算全班总成绩和平均成绩函数
int sum = 0;
float avg;
for (int i = 0; i < N; ++i, ++p) {
sum += *p;
}
avg = sum * 1.0 / N;
printf("全班总成绩为:%d,平均成绩为:%.2f\n", sum, avg);
}
void maxmin(int* p) {//查找并输出最高分和最低分
int max = *p, min = *p;//初始化最高分和最低分变量
for (int i = 1; i < N; ++i, ++p) {
if (max < *p) {//更新最高分变量
max = *p;
}
if (min > *p) {//更新最低分变量
min = *p;
}
}
printf("最高分为:%d, 最低分为:%d\n", max, min);
}
void sort(int* p) {//将成绩从小到大排序
int temp;
for (int i = 0; i < N; ++i, ++p) {//选择排序
for (int j = i + 1; j < N; ++j) {
if (*(p + i) > *(p + j)) {//冒泡思想
temp = *(p + i);
*(p + i) = *(p + j);
*(p + j) = temp;
}
}
}
}
void main() {
int arr[N];
int* p = arr;
input(p);//输入学生成绩
print(p);//输出每名同学成绩
total(p);//计算全班总成绩和平均成绩
maxmin(p);//查找最高分和最低分
sort(p);//将成绩从小到大排序
printf("排序后成绩为:\n");
print(p);//输出排序后成绩
system("pause");
}