请大神看一下,小弟我的这个代码为什么会出错
请大神看一下,我的这个代码为什么会出错?
我不知道为什么我的这个代码最简单的数字都会造成Dev崩溃?直接造成软件强制退出。请大神给看一下,谢谢了[code=c#
include<stdio.h>
void sum (int i ,int a);
int main()
{
int n,a;
int i=2;
scanf("%d",n);
sum (i,n);
if(sum==0){
printf("%d=%d",n,n);
}else{
printf("%d=",n);
}
return 0;
}
void sum (int i,int n)
{
int a;
for(i=2;i<n;i++){
if(n%i==0){
a=1;
}
}a=0;
}][/code]
------解决思路----------------------
scanf("%d",&n);
------解决思路----------------------
什么鬼,拿函数名来做条件判断
------解决思路----------------------
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
我不知道为什么我的这个代码最简单的数字都会造成Dev崩溃?直接造成软件强制退出。请大神给看一下,谢谢了[code=c#
include<stdio.h>
void sum (int i ,int a);
int main()
{
int n,a;
int i=2;
scanf("%d",n);
sum (i,n);
if(sum==0){
printf("%d=%d",n,n);
}else{
printf("%d=",n);
}
return 0;
}
void sum (int i,int n)
{
int a;
for(i=2;i<n;i++){
if(n%i==0){
a=1;
}
}a=0;
}][/code]
------解决思路----------------------
scanf("%d",&n);
------解决思路----------------------
什么鬼,拿函数名来做条件判断
------解决思路----------------------
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。