-1
int g1,g2,g3,g4;
scanf("%d %d %d %d", &g1, &g2, &g3, &g4);
g[0] = g1;
g[1] = g2;
g[2] = g3;
g[4] = g4;

无论出于何种原因 g[4] 未注册。我不完全确定问题是什么,有人有什么意见吗?

4

3 回答 3

3

我认为您的意思是设置g[3] = g4而不是g[4] = g4. 如果您的数组大小为 4 ,那么最后一个元素将位于索引3处。

于 2012-10-08T15:31:34.850 回答
1

请确保声明了数组“g”并且它的大小为 5。这将分配可由数组索引 0、1、2、3 和 4 访问的内存。根据以下代码,g[3] 从未使用过但已分配内存。

假设您使用的是整数数组,下面是可以正常工作的语法:

    int g[5];
    int g1,g2,g3,g4l;
    scanf("%d %d %d %d", &g1, &g2, &g3, &g4);
    g[0] = g1;
    g[1] = g2;
    g[2] = g3;
    g[4] = g4;

谢谢

于 2012-10-08T15:26:12.077 回答
0
#include<stdio.h>
main(){
int g1,g2,g3,g4,g[4];
        scanf("%d %d %d %d", &g1, &g2, &g3, &g4);
        g[0] = g1;
        g[1] = g2;
        g[2] = g3;
        g[3] = g4;
printf("%d\t%d\t%d\t%d",g[0],g[1],g[2],g[3]);
return 0;
        }
于 2012-10-08T16:51:31.130 回答