数组下标不是整数问题

时间:2013-02-07 19:29:41

标签: c arrays

嗨,我是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 个答案:

答案 0 :(得分:5)

您无法索引具有double值的数组。如果count例如是2.4,该怎么办?

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

答案 1 :(得分:3)

scanf("%d",&num);

d期望指向int的指针不是指向double的指针。如果参数是指向lf的指针,请使用double

printf相同:

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

d预计int不是double

答案 2 :(得分:0)

你有

double count = 1.0

然后

mint[count]=num;

你不能将索引放入一个双精度数组 - 需要是一个整数

答案 3 :(得分:0)

您收到的错误是指您使用double类型来访问数组:

mint[count]

countdouble

countsum成为int以消除警告。

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