C语言程序输出结果有-858993460
#include<stdio.h>
void main()
{ int a,b,c,d;
FILE *fp;
if((fp=fopen("aaa.txt","r"))==NULL)
{
printf("can not open file.\n");
exit(0);
}
fscanf(fp,"%d,%d,%d,%d",&a,&b,&c,&d);
printf("%d,%d,%d,%d",a,b,c,d);
}
aaa.txt文件中写的是 1 2 3 4 ,但是输出的值是1,-858993460,-858993460,-858993460,
不理解,求大神解答! 展开
第七行:scanf("% d",p++);中多了个空格。
if(x[j]=x[k])应该改成if(x[j]==x[k])一般结果出现随机数是因为指针或者所要输出的结果不是所指的内存块,指向任意地方的结果。
if(i+m<=n)改为if(i+m<n),必须保证输入的m小于n。
把int t=-10,d=10,M,N;
改成int t=-10,d=10,M=0,N;
另外,如果要求的是最大值,应该把所有的if(M>N)改成if(M<N)。
扩展资料:
C程序中函数的数目实际上是不限的,如果说有什么限制的话,那就是,一个C程序中必须至少有一个函数,而且其中必须有一个并且仅有一个以main为名的函数,这个函数称为主函数,整个程序从这个主函数开始执行。
C语言中提供四种循环,即goto循环、while循环、do while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误。
参考资料来源:百度百科-c语言
在C语言中,编译时系统会先给变量赋予默认值,其中,当定义一个int型变量时,系统会自动给该int型变量赋值于-858993460,这种情况在Visual C++ 6.0中编译时一般会有提示。
例如下C语言代码:
#include <stdio.h>
void main()
{
int a; //没有给int型变量赋予初值。
printf("%d\n",a);
}
输出:-858993460
要想改变这种情况,就要养成给变量赋予初值的习惯,例如下C语言代码:
#include <stdio.h>
void main()
{
int a=0; //给int型变量赋予初值0。
printf("%d\n",a);
}
输出:0
推荐于2018-02-26
将这句改为
fscanf(fp,"%d %d %d %d",&a,&b,&c,&d);
将其中的逗号改为空格就行了。
1,2,3,4
2018-06-26 · 为您提供更好的产品和服务