c語言問題急啊

2022-05-18 16:59:04 字數 885 閱讀 2576

1樓:匿名使用者

先給你這段改好的**:

※※※※※※※※※※※※※※※※※※※※※※※※※※※

#include

#include

#include

void main()

for(i=0;i<2;i++)

}※※※※※※※※※※※※※※※※※※※※※※※※※※※

我把具體的數字改了,不影響程式的。

隨便點幾個地方

① malloc函式使用不正確。malloc總是和free同時來使用的,否則會引起記憶體洩漏。因此我在輸出內容的同時,用了free函式來釋放空間。

② 去掉了你的變數word。首先是word的宣告有問題,word宣告為一個字元,但是實際上用來接收字串。在c語言中,字串實際上就是字元的陣列。

讀取字串的時候,scanf後面的變數實際上就是個指標。因此,我首先給a[i]分配了合適的記憶體,然後把a[i]作為指標放在了scanf裡頭。

③ 分配記憶體的時候用malloc函式,一般都是malloc(n*sizeof(char)),裡頭當然可以換成其它型別,外面要求強制指標轉換。

④ 我的程式中,要求輸入的字串長度最大為3。因為字串的最後一位總是「\0」作為結束符號。而我只宣告瞭4位。你可以自己修改。

2樓:匿名使用者

既然只是輸入輸出字元而已,何必要用字串呢?

把最後一句改為printf("%c",*a[i]);就行了。

另外,為a[i]分配空間應該寫成a[i]=(char *)malloc(sizeof(char));

3樓:匿名使用者

char *a[5],word;

改為char *a[5];

char *word;

c語言問題,急求解答,C語言問題,急求解答

你好樓主 if a 1 是判斷a是否等於1 而if a 1 則直接將a賦值為1,即永遠非零 為真 不會執行else下內容,不符合程式原意 c語言中 為賦值 為判斷是否相等 a 1 是吧1賦值給a if a 1 等價於 if 1 條件為真了這時候if語句後面的內容必然會執行的 a 1是判斷他們是否相等...

c語言問題,急求解答

abs 123 china a abs 123,b chinaa china b abs 123 press any key to continue include include int main printf a s n a printf b s n b return 0 輸入字串,你用scan...

c語言問題,C語言問題

struct student拼寫成struct studnt了。拼寫錯誤 struct studnt沒有定義,所以無法執行sizeof。include typedef struct student int main c語言問題?嗯你的理解是對的,break就是用來跳出的switch,如果沒有brea...