我得到的结果与预期不同

时间:2014-11-18 22:14:38

标签: c variables

我在编写小代码时经常会遇到同样的问题,所以我决定问你们这些人

当我运行这个程序时,我得到一些大数字例如:a = 1565434,b = 5385975

我认为它是系统中等效的默认值,请告诉我如何附加两个程序,affichage(手段显示)和saisie(意味着seisuze)所以变量之间会有联系,所以我可以抓住价值并展示它们,谢谢!

#include <stdio.h>
#include <stdlib.h>

void saisie()
{
    int m,i,X[m];
    printf("Combien de case dans le tableau : ");
    scanf("%d",&m);
    for(i=0;i<m;i++) {
        printf("Donne la note pour la case %d : ",i+1);
        scanf("%d",&X[i]);
        printf("\n");
    }
}

void affichage()
{
    int m,i,X[m];
    for(i=0;i<m;i++)
    {
        printf(" Case %d : %d",i,X[i]);
        printf("\n");
    }
}

int main()
{
    saisie();
    affichage();
}    

1 个答案:

答案 0 :(得分:0)

此行导致未定义的行为:

int m,i,X[m];

因为您在给它一个值之前使用m。相反,您必须在编写m之前设置int X[m];的值。

此外,afficiage函数输出未初始化的变量。 m中的变量i X afficiagesaisie中的变量不同。要解决此问题,您需要了解在函数之间传递变量(特别是mX);无论你使用哪本书都应该涵盖它,因为它是C编程的基础。