0

嗨,我是 c 新手,以前从未遇到过这个错误,我有点困惑,因为我不相信我已经在我的程序中声明了任何 int,但是在喜欢 13、14、22、23、24、35 时, 和 40 我得到数组下标不是整数我的代码如下。

#include <stdio.h>

 int main(int argc, char const *argv[])
{
double mint[8];
double gum[8];
double count = 1.0,num,sum=0.0;

while(count <= 8)
{
    printf("please enter a number");
    scanf("%d",&num);
    mint[count]=num;
    printf("%d\n",mint[count] );
    count++;
}

count = 1;

while(count<=8)
{
    sum += mint[count];
    gum[count] = sum;
    printf("%d\n",gum[count] );
    count++;
}

count = 1.0;
sum = 1.0;

while(count<=8)
{
    while(sum<=8)
    {
        printf("%d",mint[sum] );
        sum++;
        if (sum==8)
            printf("\n");
    }
    printf("%d",gum[count] );
    count++;
}

return 0;
}   
4

4 回答 4

5

你不能用一个double值来索引一个数组。count例如,如果是 2.4 怎么办?

因此,您必须使用整数(int例如)。

于 2013-02-07T19:31:05.607 回答
3
scanf("%d",&num);

d期望指针int不是指向 的指针double。如果lf参数是指向double.

同样适用于printf

printf("%d\n",mint[count] );

d期望一个int不是double

于 2013-02-07T19:30:50.400 回答
0

你有

double count = 1.0

然后

mint[count]=num;

您不能将索引放入双精度数组 - 必须是整数

于 2013-02-07T19:32:07.420 回答
0

您得到的错误是指您使用doubletype 来访问数组:

mint[count]

count一个在哪里double

使countsumint摆脱警告。

正如其他回答者所指出的 - 您的程序还有其他几个问题。您可能想在某个地方查看初学者教程。

于 2013-02-07T19:32:18.620 回答