c語言問題,為啥有錯呢?哪裡有錯?好的加分沒問題

2022-08-31 07:10:05 字數 3787 閱讀 1227

1樓:希聲和寡

#include

#include

void convert(char *p);

void cat(char *p1,char *p2);

int main()

else

return 0;

}void convert(char *s)*(s+i)='\0';

}void cat(char *s1,char *s2)

2樓:呼的骨

convert(*p1);

cat(*p1,*p2);

這兩個函式應該傳入指標啊

convert(p1);

cat(p1,p2);

還有void cat(char *s1,char *s2)

3樓:

1.void convert(char *p);

宣告的是傳遞個指標形參,

convert(*p1);

而在這裡你傳遞的是指標指向的乙個值。

同理,幾個傳遞的實參都是這種問題。

2.最後乙個函式中 return s1;

你定義的是void 返回型別,是不能返回s1的。

你可以改為 char* 。就可以了。

請問下面的c語言**出錯了,有點急,請各位大神能夠迅速解答,會加分的!!!!!!! 10

4樓:瀚漠

create函式在:return head; 的前面少乙個右括號:} ,

else }}

}return head;

加上就沒有錯誤了

c語言檢查錯誤!要講明白那裡錯了,還有因為什麼原理錯了!(高分)

5樓:匿名使用者

修改好的程式:

#include

#include

void main()

count[ grade[i] ] ++;

}printf("\ngrade count histogram\n");

for(i=1;i<6;i++)

主要問題: count沒有初始化

for( j=1; j<6; j++ ) count[j] = 0;

(一般會用陣列的0-4)

同時判斷分數是否有效,不需要乙個迴圈,直接判斷是否在1-5之內就行了,不在,讓使用者重輸,

在的話,直接 count[ grade[j] ] ++;

c語言問題,好的加分!

6樓:真小凡

1.這個要看你怎麼解釋了……如果是字串"\x5d",那就是佔4位元組(相當於你用解釋表示為"\\x5d"),如果是解釋成乙個16進製制字元表示,那2位16進製制剛好是1個位元組

2.整形和字元型一起輸入時中間不能連有空格,因為空格也是字元,所以答案應該是a

3.t++屬於先用後加。如果單純的printf這個表示式的值,輸出的是1。然後再printf t的值,輸出是t++後的值,是2。t+5並沒有儲存在t的變數裡,t的值不變。

4.x&1表示如果x是奇數,則值為1,是偶數則值為0,所以從左到右的順序,則可以判斷結果必然是1.0.1.0

5.(int) x = 4,(int ) y = 2,x%y = 0; x+y仍然為double型(x+y)/2 = 3.50000 再加0 自然還是3.5

6.如果程式你沒有寫錯的話,我按照你寫的運算一下,結果就是&d, n =3 , k = 1;

因為在case 0 後你沒有寫break,所以i = 5 ,i/6 = 0 符合第一種情況,找到開始的位置,一直往下執行,會無視case 2的條件,直到遇見break才會停止,繼續進行下一次的迴圈。

然後如果是你寫的程式有錯誤,我覺得錯誤可能如下

printf("&d,%d,%d\n",m,n,k);取位址d沒什麼意義吧,會按照&d輸出的

應該是printf("%d,%d,%d\n",m,n,k);%是佔位符,m的值來代替

然後就是在case 0後面的n++;寫break;

這樣最後的結果就是m = 1; n = 3; k = 1;

回答完畢

7樓:

1.樓上第一題應該錯了,應該是2個位元組,轉義字元\x5d是乙個位元組,但是「」的字串本身是有\0作為結束的,因此是兩個位元組。(如果寫成'\x5d'的形式的話因為是乙個字元而不是字串,則應是乙個位元組)

2.b3.樓上應該也錯了,逗號表示式從右往左結合,t的值應為最左邊的值,即1.000000。(經過測試)。

4.vs2008測試:1,0,1,0,具體解釋不是很清楚。

5.樓上錯誤,應該是3.5(測試過),(4.5+2.5)/2+4%2=3.5+0=3.5.

6.&d,1,3

8樓:杜撰的人

1 轉義字元 1位元組

2 b3 6.000000

4 1 0 1 0

5 4.00000

6 &d,1,3

c語言程式改錯 高手來 回答好了有加分哦

9樓:匿名使用者

錯了3個地方:

#include

main()

那個出錯資訊就是scanf將你傳入的p[i]的值當做位址去訪問了,所以出錯

10樓:飄風弓手

請問樓主是怎麼輸入的?是像1,2,3,4……這樣輸入的嗎?如果是的話我就知道錯在**?是的話我在追問裡回答你

還有scanf("%d",p[i]);

也錯了,改成scanf("%d",(p+i));

11樓:勇敢的心

main()那一行應該改為

int main()

其他的沒錯

至於你的**可能是你系統有問題 建議你把你的程式設計軟體解除安裝了重新安裝

12樓:匿名使用者

#include

main()

我想建立乙個程式用來輸入0到9以內的質數,但是此程式寫出來以後 連線,編譯都沒有問題,但是當執行的時候,卻出現了這樣的顯示(如圖)

請高手幫忙回答一下:

1.該程式**錯了,請將詳細一點

2.圖一的出錯資訊什麼意思?

以上問題都請盡量詳細,有更詳細的資料的話麻煩把**引用一下 謝謝回答好了有加分哦

c語言實現這個,為啥我提交老是答案錯誤 ??**有問題呢

13樓:

你定義sinf()等函式了嗎?庫函式沒有f,就是sin()!要包含math.h。

14樓:匿名使用者

你看一下是不是跟格式有關?輸出一行後要換行之類的

15樓:宿雨厭厭

我知道了,printf把y =去掉,直接輸出資料

16樓:匿名使用者

定義x、y的時候

抄,輸入的x是float單精度,作bai比較的時du

候,是將x與整zhi數0、40進行比較,於是發生錯誤。可dao以將float x 改為 int x 就沒問題了。也可以在要比較的0 和 40 這些數後面加個.0(點零)。

c語言又有問題了。(抱歉沒寫註釋,但是我會多加分的!)

17樓:匿名使用者

3全部#include

#include

int main()

return 0;}

C語言的問題,這道題為啥選b,C語言這道題為什麼選a?

這個問題考得太細了。c11標準或msdn對這個函式,均提到fgets從當前流位置起,至多從檔案讀取n 1個字元到陣列s。不會讀取換行符或檔案結束符之後的字元,但如讀取到換行符,換行符也會讀取到陣列s中。fgets在接收到eof或 0會結束讀取。c語言這道題為什麼選a?1 整型常數,預設是int型別。...

C語言程式出錯,C語言程式沒有錯,但為什麼總顯示乙個錯誤

這個 需要重寫。比如函式putin2中,宣告的a是char型字元,後面scanf中卻要讓它接收乙個姓名字串,這樣的錯誤說明 構思很混亂,不是略改一下就能解決的 putin2函式中 char a 應該為乙個字串改為char a 100 字串a應該與運動員名字比較,也就是a與結構體的name2欄位比較。...

C語言程式沒有錯,但為什麼總顯示錯誤

嗯,是沒有問題的。那麼vc可能出問題了。試試重新編譯一下或是重啟一下可能會有解決。看不清,發 出來幫你看看 c語言程式老是顯示錯誤但是沒有錯是什麼原因 5 從 上看沒有問題。如果你是新安裝的編譯器,那麼有可能是編譯器配置問題。error spawning cl.exe 也有可能是你工程中加了不止乙個...