【发布时间】:2018-09-23 21:31:06
【问题描述】:
我需要将参数放入一个数组并使用方法获取数字的最大值/最小值和平均值。它不会返回预期的结果。我对此束手无策。如果有人能让我知道我做错了什么,我将非常感激。这是我在沮丧中造成的混乱。
#include<stdio.h>
#include <stdlib.h>
void getGrade(int argc, char *argv[]);
int findMaximum(int grade[]);
int findMinimum(int grade[]);
float calculateAverage(int grade[]);
void printResults(int maximum, int minimum, float average);
int argc;
int grade[50];
int main(int argc, char *argv[])
{
getGrade(argc,argv);
int max = findMaximum(grade);
int min = findMinimum(grade);
float avg = calculateAverage(grade);
printResults(max,min,avg);
return 0;
}
void getGrade(int argc, char *argv[]){
for(int i=1;i<=argc-1;i++)
grade[i-1]=atoi(argv[i]);
}
int findMaximum(int grade[]){
int max;
int size = argc-1;
for(int i=0;i<size;i++){
if(grade[i]>grade[0]){
max = grade[i];}
else{
max = grade[0];}
}
return max;
}
int findMinimum(int grade[]){
int min;
int size= argc-1;
for(int i=0; i<size;i++){
if(grade[i]<grade[0])
min=grade[i];
}
return min;
}
float calculateAverage(int grade[]){
float avg=0.0;
for(int i=0; i<=argc; i++)
avg= grade[i]+avg;
return avg/(argc-1);
}
void printResults(int maximum, int minimum, float average){
printf("Maximum Grade: %d\nMinimum Grade: %d\nAverage Grade: %.2f\n",maximum,minimum, average);
}
我是 C 的新手,所以请善待并原谅这已经成为一团糟。
【问题讨论】: