c语言为什么编译没错执行有错
⑴ 求解释:为什么有时在运行c语言时,会出现编译无错误,而运行有错误呢
main函数中sign,tb没有赋值,便使用。
palidorm(i);
prime(i);
修改后:
#include <stdio.h>
int parlidorm(int i);
int prime(int i);
int main() {
int m,n,i,t,sign,tb;
scanf("%d%d",&m,&n);
if(m<n){
t=m;
m=n;
n=t;
}
for(i=n;i<=m;i++)
{
sign = parlidorm(i);
tb = prime(i);
if(sign==1&&tb==1)
printf("%d ",i);
}
return 0;
}
int parlidorm(int i)
{
int sign=0,m=i,j,len=0;
char c[30];
while(m){
c[len++]=m%10;
m=m/10;
}
sign=1;
for(j=0;j<len/2&&sign;j++)
{
if(c[j]!=c[len-j-1])
sign=0;
}
return sign;
}
int prime(int i)
{
int j,tb=1;
for(j=2;j<i/2;j++)
{
if(i%j==0)
tb=0;
}
return tb;
}
⑵ 这个c语言的程序编译没问题,执行时候会出错 怎么回事
应该是printf
("sum
is
%f
\n",sum1);
破坏了程序的完整性.导致程序出错
可以修改为printf
("sum
is
%f
\n",(double)sum1);
或者printf
("sum
is
%d\n",(double)sum1);
⑶ 为什么C语言程序编译正确但不能执行
这当然原因非常多,比如:编译器编译不够严格、程序有很大的风险等等,最简单的一个例子如下:
inta;
scanf("%d",a);
可以确定的一点是:一旦在运行中出现错误,大多是较为严重的错误,须引起重视,否则,一旦错误非常严重,必会导致许多严重的后果,如死机、卡屏甚至直接导致蓝屏。
⑷ 这段C语言程序,为什么编译没问题,但运行出问题了,错在哪
因为没有max函数的定义,只有声明,编译时编译器只知道你跟它“说”有这么一个函数,它“相信”你,编译通过了。但是执行的时候找不到
⑸ 为什么C语言程序编译正确但不能执行
因为你的c没有初值,while循环无法进行。另外你的算法也有问题,while循环可改为while(m%n!=0),循环结束后最小公约数时n。
⑹ c语言编译时候没错,执行就报错
第二行拼写错误
是main
⑺ 为什么我写的C语言程序编译时没错,运行时有错误
建议你下断点,然后反复调试运行,肯定能找出问题所在。
我一遇到次类问题,都是这样解决的。
⑻ c语言为什么有时候编译能过,运行却出错
栈溢出啊,还有占位符格式什么的,原因很多,编译通过只是第一步
⑼ c语言编译没错误,但是执行不了,一执行就出错,这是为什么呢
你这个就叫“编译错误”,确切地说是“链接错误”,不叫“运行时出错”。
⑽ C语言编译没错,运行报错是怎么回事啊
# include <stdio.h>
# define N 3
float aver(int data[],int);
int max, min;//全局变量定义有误!
void main()
{
int a[N],i;
float av;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
av=aver(a,N);
printf("av=%f\n",av);
printf("max=%d\nmin=%d\n",max,min);
}
float aver(int data[],int n)
{
int m=1;
float avg=data[0];
max=min=data[0];
for(m=1;m<n;m++)
{
avg+=data[m];
if(data[m]>max)
max=data[m];
if(data[m]<min)
min=data[m];
}
avg/=n;
return avg;
}
