有一种整数存储类型,取值范围- 1024 ~ 1023. 从0开始一 直到1023,再加上1变成-1024,一直循环。 如何把这些数存入数组里面

#include<stdio.h>
int main()
{
int n=0;
int w[n];
while(w[n]!=1024)
{
int a=-1024;
w[n]=a;
++n;
++a;
printf("%d ",w[n]);
}return 0;

img


题主整体是有思路的,但是红框中的部分不对,你把a=-1024放循环内,每次运行都会赋值一次给w[n],存数组中的内容全是1024,

img


还有这一句,int n=0; int w[n]; 这样写的话 定义的数组就定义成了w[0];也是一点儿细节上的错误吧。

可尝试下面写法:

#include<stdio.h>

int main()
{
    int n=0;
    int w[2100]; //数组开大一些,以免空间不够用
    int a=-1024; 
    while(n<2048){ 
        w[n]=a; //w[n]初始值为-1024,后面通过自增,一直增大到1023
        printf("%5d",w[n]); //设置域宽为5
        ++n;
        ++a;
    }
    return 0;
}

运行结果如图:

img


希望对题主有所帮助,望采纳!


#include<stdio.h>
int main()
{
    int w[2048];
    int n = 0;
    int a = -1024;
    while (n<2048)
    {
        w[n] = a;
        printf("%d ", w[n]);
        ++n;
        ++a;
    }
    return 0;
}
#include <stdio.h>

#define N 1024 * 2

int main()
{
    int a[N];
    for (int i = 0; i < N; i++)
    {
        if (i > 1023)
            a[i] = i % 1024 - 1024;
        else
            a[i] = i;
        printf("%d ", a[i]);
    }
    return 0;
}