當前位置:首頁 » 編程軟體 » c編譯錯誤

c編譯錯誤

發布時間: 2022-01-11 11:03:41

A. 如何快速查找c語言編譯時的錯誤

1、首先,我們啟動編譯軟體程序,今天我們以VC++6.0為例。

注意事項:

編譯語言是一種以編譯器來實現的編程語言。它不像直譯語言一樣,由解釋器將代碼一句一句運行,而是以編譯器,先將代碼編譯為機器碼,再加以運行。理論上,任何編程語言都可以是編譯式,或直譯式的。它們之間的區別,僅與程序的應用有關。

B. C語言:下面的代碼為什麼會出現編譯錯誤應當怎麼改正

錯誤出在a=sum;這一句——因為構成C語言程序的基本單位是函數而不是C語句,這里的a=sum;不在任何函數中,所以編譯器無法處理而出錯。把它放到主函數中的printf("%d ",a(3,5));之前就可以了。函數外只能進行全局變數定義或聲明,而不能進行其他操作,所以把int (*a)(int, int); a=sum;兩句改成int (*a)(int, int)=sum;,讓它成為聲明變數a並初始化為sum也是可以的。你可以試試。

代碼文本:

#include "stdio.h"

int sum(int a, int b);

int (*a)(int, int);

int main(int argc,char *argv[]){

a=sum;

printf("%d ",a(3,5));

return 0;

}

int sum(int a,int b){

return a+b;

}

C. c語言編譯錯誤

int main(void){ main 改過來

D. c 編譯提示錯誤

樓主你好。首先我說下你的函數第一行報錯的問題。MAXLEN是你定義的一個宏,貌似不能把它作為形參(因為你已經把它定義成為宏)。你可以把後面一個形參改為int n,當然下面的MAXLEN也改為n,你只需要實參傳進來的是MAXLEN就OK。
然後我說下你這個函數可能存在的問題:
函數貌似開始要用malloc函數開辟一段內存(記得函數執行完把它釋放),因為沒有開辟內存,s++操作可能不能執行。還有你返回的是s-t,我想你的本意是想記錄輸入的字元個數,並把它返回吧,如果前面指針操作有問題(沒有開辟內存等引起的),那麼這兩個指針相減可能將被視為非法的。而你的函數返回值為int,可能會報錯。
int getline(char *s,int n) /*這一行提示錯誤!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
{
int k;
s=(char *)malloc(sizeof(char)*100);
char *t;
t=s;
int c;
while(--n>0&&(c=getchar())!=EOF&&c!='\n')*s++=c;/*這一行錯誤!!!!!!!*/
if(c=='\n')*s++=c;
*s='\0';
k=s-t;
free(s);
return k;
}
我試了一下,你的程序改了MAXLEN和這個都沒有報錯,但是也沒執行結果。你再看看吧,一家之言,僅供參考。希望對你有幫助。

E. c語言 編譯錯誤

#include<stdio.h>
#definer3
#definec4
voidsum_r(intar[][c]);//---宏定義r不能在這里當變數用,觀察你後續代碼,這個參數沒用,刪掉
voidsum_c(int[][c]);
intsum2d(int(*ar)[c]);
intmain(void)
{
intjunk[r][c]={{2,4,6,8},{3,5,7,9},{12,10,8,6}};
sum_r(junk);//
sum_c(junk);//
printf("Sumofallelements=%d ",sum2d(junk));
return0;
}

voidsum_c(intar[][c])//
{
intr1;
intc1;
inttot;
for(c1=0;c1<c;c1++)
{
tot=0;
for(r1=0;r1<r;r1++)//
{
tot+=ar[r1][c1];
}
printf("col%dsum=%d ",c1,tot);//
}
}
voidsum_r(intar[][c])
{
intr1;
intc1;
inttot;
for(r1=0;r1<r;r1++)
{
tot=0;
for(c1=0;c1<c;c1++)
{
tot+=ar[r1][c1];
}
printf("row%dsum=%d ",r1,tot);//
}
}

intsum2d(int(*ar)[c])
{
intr1;
intc1;
inttot=0;
for(r1=0;r1<r;r1++)//
{
for(c1=0;c1<c;c1++)
{
tot+=ar[r1][c1];
}

}
returntot;//
}

F. C語言編譯錯誤

在寫#define PI 3.1416 語句時
前面應加空格。

G. c語言編譯錯誤在哪裡

把abc定義成浮點型數據就好了
因為,整數在做除法時,是整除,不帶小數的,小數部分會捨去

double a,b,c ;

相應的後面的輸入scanf()中的參數也要改成%lf

H. c程序編譯錯誤

(1)語法問題,乘法表達錯誤。

k=1/(2n-1); 中 2N ---> 2*N

(2)主函數給個返回值(養成好習慣,因為根據編譯環境不同提示錯誤)
int main(){
...
return 0;
}

其他的沒有問題

熱點內容
循跡小車演算法 發布:2024-12-22 22:28:41 瀏覽:81
scss一次編譯一直生成隨機數 發布:2024-12-22 22:04:24 瀏覽:955
嫁接睫毛加密 發布:2024-12-22 21:50:12 瀏覽:975
linuxbin文件的安裝 發布:2024-12-22 21:46:07 瀏覽:798
vlcforandroid下載 發布:2024-12-22 21:45:26 瀏覽:664
電腦做網關把數據發送至伺服器 發布:2024-12-22 21:44:50 瀏覽:431
新華三代理什麼牌子的伺服器 發布:2024-12-22 21:33:21 瀏覽:342
歡太會員密碼是什麼 發布:2024-12-22 20:57:28 瀏覽:74
sqllocaldb 發布:2024-12-22 20:07:08 瀏覽:126
如何找到我的伺服器 發布:2024-12-22 19:52:14 瀏覽:301