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:至於你定義的那個函數本身有沒有問題,沒有運行還不知道,但是看著感覺語法啥的很亂,調理不是很清楚,真心不明白你准備幹嘛?