c語言問題,問題見圖,為什麼輸入s之後k就變0了

2022-06-11 04:05:02 字數 666 閱讀 5941

1樓:匿名使用者

1全部你用的是c還是c++呀。

**裡面c和c++都混用了。

原因在於scanf("%s",&s);

由於s是char型,只能接收乙個字元的空間,當輸入字串時,會把真個字串都接收,儲存到s對應的位址中。

由於程式中分配空間不多,k,i,s他們的位址很近,所以接收到的字串會覆蓋到k,i的內容,這就導致了,k,i值的錯誤。

2樓:匿名使用者

把scanf("%s",&s);

改為scanf("%c",&s);試試,s的型別是char ,你用%s肯定有問題

3樓:匿名使用者

我照抄你的**,在我這裡沒有問題啊

4樓:匿名使用者

按你這個結果分析 k的記憶體位址分配在s的後面,因為s是個char,只有1個位元組的空間,所以scanf("%s",&s)就是個越界操作,這個越界正好越到了k的位址,於是k被改寫了

5樓:

%s 是字串的輸出格式

%c 是單個字串輸出格式

怎麼感覺你的最後兩個語句讀不懂,不明白你要表達的意思後面應該改為

scanf("%c",&s);

printf("k==%c\n",s);

c語言程式簡單問題,如圖,為什麼選B

這道題的答bai案是 du23 int a 2,b 5,c 8 printf 3.0f n fun int fun a c,b c fun fun a c,b c 其實就是 zhia c b c 23 因為本身a,b,c都是int,所 dao以內轉換為float不會有變容化。c語言問題,答案為什麼選...

C語言問題,輸入字元az,AZ,判斷它是否母音字

int main 採納哦容 c語言中輸入乙個英文本母 判斷其是否為母音字母 用getchar輸入資料,用判斷語句判斷是否為母音字母。一 演算法分析 1 輸入乙個英文專字母 2 判斷是否為屬母音字母 3 輸出結果。二 參考 include int main include void main void...

c語言中,關於運算子和優先順序的問題,具體見圖

都是1啊 0 2 2 0 1 1 2 0 2 2 0 1 2 2 0 2 0 1 依次是1,1,0 c語言指標及運算子優先順序的問題 先執行vp 由於 是在變數後面的,返回vp原來的值 沒有執行 前的值 將0賦值給 vp 如果是 vp 0,則將0賦值給已經加1的指標中位址 雁引愁心去,山銜好月來。c...