#include <stdio.h>
#include <stdlib.h>
#define MAX 25
int readTotalNums();
void fillArray (int nums[], int total);
void sortIt (int nums[], int total);
int findMean (int nums[], int total);
int findMedian (int nums[], int total);
int findMode (int nums[], int total);
void printResults (mean, median, mode);
int goAgain ();
int main()
{
int nums[MAX];
int total;
double mean, median, mode;
do
{
total=readTotalNums();
fillArray(total,nums);
sortIt(nums, total);
mean= findMean (nums,total);
mode=findMode(nums,total);
median=findMedian(nums, total);
printResults(mean,mode, median);
}while(goAgain());
return 0;
}
int readTotalNums()
{
int total;
do
{
printf("How many numbers would you like to enter? (1-25)\n");
scanf("%i",&total);
while(getchar()!='\n');
}while (total<1 || total>MAX);
return total;
}
void fillArray (int nums[], int total)
{
int x;
for (x=0; x<total; x++)
{
printf("enter your numbers\n");
scanf("%i", &nums[x]);
while(getchar()!='\n');
}
}
所以我决定只提出我已经拥有的东西......因为问题可能出现在我的fillArray函数之前...... 我一直得到一个“这个程序已停止工作”的消息,我知道如果你不剥离回车通常会得到。我是一个新手,只是试图通过我的专业编程课程来完成它,所以任何帮助都会受到赞赏!!
答案 0 :(得分:1)
你应该向scanf
传递指向它应该存储输入的位置的指针,而不是已存在的值。 scanf("%i", &nums[x]);
答案 1 :(得分:1)
scanf
的第二个参数应该是一个指针。在这里传递一个整数。由于这是作业,我不会给你准确的代码,但就我所知,这就是问题所在。
答案 2 :(得分:1)
scanf
函数需要指针,而不是整数。编译时没有收到编译器警告吗?试试这个:
scanf("%i", nums + x);
或等效
scanf("%i", &nums[x]);