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...