Board logo

標題: [【學科】] 【程式】程式 [打印本頁]

作者: 22169751    時間: 2019-11-15 01:05     標題: 【程式】程式

本帖最後由 22169751 於 2019-12-27 00:22 編輯

int main(void)
{

int a[10];

for (size_t t = 0; t < 10; t++)

{

scanf_s("%d\n", &a[t]);

printf("%d\n", a[t]);

printf("%d\n\n", t);

}

system("pause");

return 0;
}
問.png

想問一下為甚麼第一次的輸入沒有列印出數字
第二次輸入後印出來的數字卻是第一次應該要印出來的
我希望他跑出來是
10
10
0

20
20
1

30
30
2
...

圖片附件: 問.png (2019-11-15 01:00, 771 Bytes) / 下載次數 13
http://bbs.61.com.tw/attachment.php?aid=1829862&k=38d940121430e91289b3136a741c92d8&t=1765806341&sid=7zcic0


作者: 39475494    時間: 2019-11-15 10:06

你把 scanf_s("%d\n", &a[t]);
改成 scanf_s("%d", &a[t]); 試試
作者: 22169751    時間: 2019-11-15 12:12

本帖最後由 22169751 於 2019-11-15 12:23 編輯

解決了 感謝
忘了scanf會自動換行
順便問一下有\n的時候為什麼第一次會跳過printf而不是印出
10

10
0
作者: 39475494    時間: 2019-11-15 12:27

本帖最後由 39475494 於 2019-11-15 12:29 編輯

回復 3# 22169751
scanf 是輸入的 function
printf 是輸出的 function

你要去查它們的用法
它應該不是這樣用的
如果你要在 scanf 下面再空一行
在他下面打 printf("\n");
作者: 22169751    時間: 2019-11-15 12:57

查到了
https://kknews.cc/news/rey22z4.amp




歡迎光臨 Discuz! Board (http://bbs.61.com.tw/) Powered by Discuz! 7.2