我正在尝试使用用户输入填充数组,我已经提示用户现在我正在尝试编写fillArray函数

时间:2012-02-28 02:19:01

标签: c

#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函数之前...... 我一直得到一个“这个程序已停止工作”的消息,我知道如果你不剥离回车通常会得到。我是一个新手,只是试图通过我的专业编程课程来完成它,所以任何帮助都会受到赞赏!!

3 个答案:

答案 0 :(得分:1)

你应该向scanf传递指向它应该存储输入的位置的指针,而不是已存在的值。 scanf("%i", &nums[x]);

答案 1 :(得分:1)

scanf的第二个参数应该是一个指针。在这里传递一个整数。由于这是作业,我不会给你准确的代码,但就我所知,这就是问题所在。

答案 2 :(得分:1)

scanf函数需要指针,而不是整数。编译时没有收到编译器警告吗?试试这个:

scanf("%i", nums + x);

或等效

scanf("%i", &nums[x]);