关于初学数组
#include<stdio.h>int main()
{
int x;
scanf("%d",&x);
int hs;
int a;
printf("偶数:\n");
for(a=0;a<x;a++)
{
if(a%2==0)
{
hs=a;
printf("%d\t",hs);
}
}
for(a=0;a<x;a++)
{
printf("%d\t",hs);
}
return 0;
}
为什么输出的数字有些大。。。 问题出在你的代码中。在C语言中,变量长度为0的数组是不允许的。你在声明数组 hs 时使用了变量 x 来指定数组的长度,这是不合法的。
要解决这个问题,你可以使用动态内存分配来创建一个具有指定长度的数组。你可以使用 malloc 函数来动态分配内存,并使用 free 函数来释放内存。
下面是修正后的代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
int x;
scanf("%d", &x);
int *hs = (int*)malloc(x * sizeof(int)); // 动态分配内存
int a;
printf("偶数:\n");
for (a = 0; a < x; a++) {
if (a % 2 == 0) {
hs = a;
printf("%d\t", hs);
}
}
printf("\n");
for (a = 0; a < x; a++) {
printf("%d\t", hs);
}
free(hs); // 释放内存
return 0;
}
这样,你就可以正确地输出你想要的结果了。
页:
[1]