首页 > 解决方案 > 扫描和显示数组元素的函数出错

问题描述

我必须编写一个子程序来扫描并显示这样的数组的数字:[4, 5, 6] 但是即使我没有语法问题,该函数也会出现意外错误。这是我的代码:

#include <stdio.h>

int display();

int display()
{
    int i, size;
    int array[size];
    printf("How many numbers will be in your array?\n");
    scanf("%d", &size);
    printf("Input the numbers of your array:\n");
for(i=0; i<size; i++)
{
    scanf("%d", &array[i]);
}

printf("[");
for(i=0; i<size; i++)
{
    printf("%d", array[i]);
    for(i=0; i<size-1; i++)
    {
        printf(",");
    }
}
printf("]");
}
int main()
{
    display();

    return 0;
}

标签: arrayscfunction

解决方案


这是解决方案:

#include <stdio.h>

int display();

int display()
{
    int i, size;
    printf("How many numbers will be in your array?\n");
    scanf("%d", &size);
    int array[size];
    printf("Input the numbers of your array:\n");
for(i=0; i<size; i++)
{
    scanf("%d", &array[i]);
}

printf("[");
for(i=0; i<size; i++)
{
    printf("%d", array[i]);
    if(i != size-1){
        printf(",");
    }
}
printf("]");
}
int main()
{
    display();

    return 0;
}

问题:
您在扫描变量之前初始化数组,size因此数组的值将取决于垃圾size值,因此您需要像这样修改代码。

对于打印,,最好使用 2 个循环并增加相同的变量,i因此我使用了一个条件if以另一种更好的方式来做到这一点。


推荐阅读