我在编写小代码时经常会遇到同样的问题,所以我决定问你们这些人
当我运行这个程序时,我得到一些大数字例如: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();
}
答案 0 :(得分:0)
此行导致未定义的行为:
int m,i,X[m];
因为您在给它一个值之前使用m
。相反,您必须在编写m
之前设置int X[m];
的值。
此外,afficiage
函数输出未初始化的变量。 m
中的变量i
X
afficiage
与saisie
中的变量不同。要解决此问题,您需要了解在函数之间传递变量(特别是m
和X
);无论你使用哪本书都应该涵盖它,因为它是C编程的基础。