嗨,我是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;
}
答案 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]
count
是double
。
让count
和sum
成为int
以消除警告。
正如其他回答者所指出的那样 - 你的程序还有其他几个问题。您可能想在某个地方查看初学者的教程。