c语运行错误编译正确
⑴ c语言运行错误,这个程序编译没有错误,但运行不了。刚学指针,不懂,请详解。见谅
scanf("%d",&a[i]);
scanf传得必须是指针,也就是地址。
比如int a;就需要&a;
但是如果是数组,数组本身表示的是数组首元素的地址。也就是
int a[10];a就表示a[0]的地址;那a[3]的地址呢?可以这样,&a[3];这就是加&的数组,如果不加呢,可以这样(a+3)就可以了,a是a【0】的地址,那么a+3就是a[3]的地址。所以你要弄明白他的传入的到底是谁的地址,就可以了,加不加只是个实现方式不一样而已。
⑵ 求解在编写c语言时编译正确,运行出现一个错误,以下是源代码
unresolved external symbol _WinMain@16
这个说明你的工程(项目)是个win32工程,而你在win32项目里写了控制台代码了,把你的项目改成控制台项目就可以了
⑶ C语言编译正确,但运行总错误
建议你下断点,然后反复调试运行,肯定能找出问题所在。 我一遇到次类问题,都是这样解决的。
⑷ 同一个C语言的程序有时候编译正确,有时候编译出错是怎么回事啊
是否查看有错误
或者警告?
是否使用了指针?
是的话
看看指针
是否修改了未知内存,
其他不知道
⑸ 为什么C语言程序编译正确但不能执行
这当然原因非常多,比如:编译器编译不够严格、程序有很大的风险等等,最简单的一个例子如下:
inta;
scanf("%d",a);
可以确定的一点是:一旦在运行中出现错误,大多是较为严重的错误,须引起重视,否则,一旦错误非常严重,必会导致许多严重的后果,如死机、卡屏甚至直接导致蓝屏。
⑹ 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;
}
⑺ C语言:为什么调试正确但运行时却全部错误急!
你这个循环嵌套逻辑有问题的把?
第一个 Y值从1变为-1过程中,会循环20次:
X从-1变为1,Y每变动0.1,X会变动40次,完成一次X的循环。
也就是循环体完成计算20*40=800.
本身实际编译没问题,应该是你的逻辑有问题。
要说编译问题,也就是本身设定的数据是float型,但是pow运算会自动转化为double型。所依pow运算之后又强制转化为FLOAT型,会产生数据失真,产生偏差。建议直接改为double型数据
⑻ c语言 编译正确 运行错误 为什么
明显的错误是 输入哪里 主函数的 scanf("%d%d",a,b); 改成scanf("%d%d",&a,&b);
⑼ c语言指针 编译正确 运行出现错误 为什么
1. void find(int *a,int n,int *max,int *maxpos,int *min,int *minpos)定义的时候参数全是指针,
但是你再调用的时候find(array,n,*max,*maxpos,*min,*minpos); 这里传进去的参数全是 值
应该写成find(array,n,max,maxpos,min,minpos)
2.printf("max=%d, maxpos=%d, min=%d, minpos=%d\n",max,maxpos,min,minpos);这里输出的时候,max,maxpos...这些都是指针,要输出值得话得写成
printf("max=%d, maxpos=%d, min=%d, minpos=%d\n",*max,*maxpos,*min,*minpos)
PS:至于你定义的那个函数本身有没有问题,没有运行还不知道,但是看着感觉语法啥的很乱,调理不是很清楚,真心不明白你准备干嘛?