c語言scanfda和printfda有什麼

2021-03-19 18:19:11 字數 4741 閱讀 2065

1樓:匿名使用者

scanf("%d",&a),是輸入一個整形數值給變數a,

printf("%d",&a),是列印a的地址。

如果去掉&,變成printf("%d",a),就是列印整形變數a的值了。輸出時一般是不加&的

2樓:匿名使用者

scanf(「%d」,&a)是輸入一個整形變數;

printf(「%d」,&a)是輸出這個整型變數的地址。

3樓:聽海的聲音

printf不要取地址符&

4樓:匿名使用者

80445766

回答正確

c語言中%d中間加個數字,在printf和scanf中有什麼不同

5樓:金色潛鳥

printf 是 輸出語句, %4d 表示輸出的場寬為4位,%1d 表示輸出的場寬為1位, 但另有附加規定:當所給場寬度不足時,按實際需要佔位輸出。所以 輸出 10 ,給 %1d 仍將 輸出 10, 不會只輸出 1,不輸出0。

scanf 是輸入語句,%4d 表示 讀入的數 為 4位整數,超出4位 只讀4位,不足4位則按實際位數 讀入, %1d 表示 讀入的數 為 1位整數,超出1位 只讀1位。

例如: scanf("%1d%4d",&x,&y);

拍入 987654321回車

x 讀入9,y讀入 8765, 餘下的 4321 留在輸入緩衝區 供 後面的 輸入語句使用。

6樓:皚虎

精確度。要輸入輸出多少位。不夠的補零

scanf("%d%d",&a,&b)與scanf("%d,%d",&a,&b)的區別!!

7樓:園林植物手冊

1、scanf("%d%d",&a,&b)輸入的兩個資料用空格,tab或者回車區分開。

2、scanf("%d,%d",&a,&b) 輸入的兩個資料用逗號區分開。

3、scanf函式功能是從外設讀取資料並賦值給變數,%d代表接收一個整形數,&a代表變數a的記憶體地址,也就是說把讀取的第一個整形數賦值給變數a。

4、scanf函式稱為格式輸入函式,即按使用者指定的格式從鍵盤上把資料輸入到指定的變數之中,其關鍵字最末一個字母f即為「格式」(format)之意。

使用scanf函式常見的問題

1、在高版本的 visual studio 編譯器中,scanf 被認為是不安全的,被棄用,應當使用scanf_s代替 scanf。

2、對於字串陣列或字串指標變數,由於陣列名可以轉換為陣列和指標變數名本身就是地址,因此使用scanf()函式時,不需要在它們前面加上"&"操作符。

3、 可以在格式化字串中的"%"各格式化規定符之間加入一個整數,表示任何讀操作中的最大位數。

4、 scanf函式中沒有類似printf的精度控制。

如: scanf("%5.2f",&a); 是非法的。不能企圖用此語句輸入小數為2位的實數。

5、scanf中要求給出變數地址,如給出變數名則會出錯

如 scanf("%d",a);是非法的,應改為scanf("%d",&a);才是合法的。

6、 在輸入多個數值資料時,若格式控制串中沒有非格式字元作輸入資料之間的間隔,則可用空格,tab或回車作間隔。

c編譯在碰到空格,tab,回車或非法資料(如對「%d」輸入「12a」時,a即為非法資料)時即認為該資料結束。

7、 在輸入字元資料(%c)時,若格式控制串中無非格式字元,則認為所有輸入的字元均為有效字元。

8樓:匿名使用者

關鍵就是輸入的時候是以什麼來區分你的輸入的2個數的%d%d就是以空格,tab或enter區分,你在螢幕輸入的時候要輸入2 3

而%d,%d是以,來區分的,你在螢幕上輸入數字的時候就要輸入2,3不存在scanf("%d","%d",&a,&b)?

9樓:匿名使用者

一樓的回答太詳盡了 我都不好意思開口了

scanf("%d 和%d 之間不能用逗號隔開,否則編譯時會出錯; %d和%d 之間可以用空格隔開 或是什麼也不要 %d%d 直接相連也行

10樓:匿名使用者

scanf()括號中引號內的內容必須輸入,你第二個scanf()的引號裡多了一個逗號,在程式執行時輸入資料必須也輸入這個逗號,否則會出錯。

11樓:匿名使用者

第一個在輸入的時候中間可以是隨便的間隔符,如空格,回車都可以。但是第二種就只能輸入逗號換行。只有這樣才能識別

12樓:匿名使用者

一樓的回答太詳盡了 我都不好意思開口了

13樓:子夜清風

兩者的區別在於在編譯是前者用空格或tab分開,後者用都好分開兩數!!

至於最後一個問題好像沒見過!!

14樓:匿名使用者

前者輸入時用空格或tab分開,後者用逗號分開輸入

15樓:噶話噶

三峽大壩蓄水後,遊人泛舟神女的石榴裙下,仍需仰頭眺望,才能欣賞到神女的綽約風姿。

c語言中scanf("%d",a)和scanf(%d",&a)在printf("%d",a)中到底有什麼區別

16樓:蟲心菜

二者的區別是一個是取變數

的值,一個是取地址。scanf(%d",&a) 是讀取整型變數a在記憶體中的地址,而scanf("%d",a)是讀取整型變數a的值。

&是取地址的意思,&a是取出變數a的地址scanf(%d",&a) 就是讀取1個數字,寫入a的地址,scanf("%d",a),是讀取1個數字,寫入地址a,這個a如果是100,就寫到地址100。如果是200,就寫到地址200,顯然,這很危險,萬一a的儲存的值剛剛好是一些指令的地址什麼的,會寫到這個地址修改指令,就執行不下去了,出大錯。printf("%d",a) 就沒什麼了 把變數a的儲存的值輸出然後&是取地址。

拓展資料

1、在html或sgml文件中,用於指明有字元存在(特殊字元)的預設符號。

2、在電子製表程式中,用於在描述單元格相互關係的公式中插入文字的操作符。

3、英文中代表and,也可讀and。

4、該字元讀音「z'da」。

5、&還有「聯合」的意思。比如「a&b」公司,就是「a」和「b」兩間公司合併起來的。

6、在某些電腦語言,如java中,表示按位進行「與」運算。

7、英文拼寫:ampersand。

8、高階語言中的取地址符,如:「int a=0;int *p;p=&a;」,意為取變數a的地址給指標p。

9、c語言中兩個&&表示「與」運算。如:while(a==9&&b==5) 表示當a等於9且b等於5時,條件成立。

10、matlab中,&表示「與」運算(對應地,|表示「或」運算),但matlab較高版本(如:matlab r2008b)中,也承認&&的寫法。在以上的意義中,以第3和第5項的用法最為普遍。

11、在vfp 資料庫中,&是一個巨集代換函式,用內在變數的值來代替&及變數名。

12、在pascal中,&是八進位制整型常量的字首,如&7表示7 , &17表示15 , &177表示127 。

13、&還被大量引入到藝術創作與設計中。

14、bat中的命令,&之後順序執行多條命令,不管命令是否成功。

15、在visual basic中使用命令按鈕時,(&字母)代表將該字母設為快捷鍵。如在命令按鈕的caption屬性中輸入「確定(&k)」則表示k為「確定」事件的快捷鍵。

16、起標識作用。c++中引用的宣告方法:型別識別符號 &引用名=目標變數名,&在此不是求地址運算,而是起標識作用。

17樓:掃帚

那兩個回答對scanf的解說也太迷了,scanf後半部分寫的應該是一個指標(地址)

如果a是一個int變數,a = 1,儲存在記憶體的1234 5678h處,scanf(%d",&a)是正確寫法,表示將輸入讀到變數a所在的地址處,即記憶體的1234 5678h處

而在執行時scanf("%d",a)會發生錯誤,因為將輸入讀到了記憶體的0000 0001h處

18樓:隨偉春芳歇

scanf(%d",&a) 就是讀取整型變數a在記憶體中的地址 。

scanf("%d",a)就是讀取整型變數a的值。

printf("%d",a) 就是輸出整型a的值。

在c語言中,&是取地址運算子,&a表示獲取a在記憶體中的地址。%d 格式化輸出整數。scanf() 函式用於從標準輸入(鍵盤)讀取並格式化, printf() 函式傳送格式化輸出到標準輸出(螢幕)。

在c語言中,%f表示 格式化輸出浮點型資料。

例如:#include

int main()

19樓:我是不是師兄

&是取地址的意思 &a 是取出變數a的地址scanf(%d",&a) 就是讀取1個數字 寫入a的地址scanf("%d",a) 是讀取1個數字 寫入地址a 這個a如果是100 就寫到地址100 如果是200 就寫到地址200 顯然 這很危險 萬一a的儲存的值剛剛好是一些指令的地址什麼的 會寫到這個地址修改指令 就執行不下去了 出大錯

printf("%d",a) 就沒什麼了 把變數a的儲存的值輸出然後 &是取地址 所以你可以

printf("%d",&a) 這樣是輸出a的地址

20樓:燒餅頭

scanf是輸入,要在變數前加上&。printf是輸出,不用加&

c 和c語言有什麼聯絡和區別,C 和C語言有什麼聯絡和區別?

c 是建立在c的基礎上的。c是結構式程式設計 c 是物件導向的程式設計 有個形象的例子,比如用c做一個打怪的遊戲,遊戲裡有3個怪物,那麼砍第一個怪物,其餘兩個怪物則會一起受傷。而用c 來寫,則每個怪物都是一個物件,砍一個怪物不會影響到另一個。c語言是結構化和模組化的程序導向的語言,c 語言是物件導向...

c語言中包含whilefor和,C語言中包含while for 和do while3種迴圈控制語句,其中什麼迴圈控制語句至少要執行一次迴圈體

do while迴圈至少執行一次迴圈體。因為它是先執行迴圈體,再判斷條件的,另兩個是先判斷條件 條件符合才執行迴圈體 do while 要先執行do,然後再判斷while裡面的條件,如果條件成立則執行下一次do裡面的內容 do while語句會在不判斷執行條件的情況先首先執行一次 do while呀...

c語言程式設計求12320的和,C語言程式設計求12320的和

求1 2 3 20 最好是用迴圈做,用遞迴法,程式的資源開銷大,效率低,運算時間將更長!include int fact int i else void main printf result d sum main 答案如下 include main printf d sum 用c語言程式設計求出1 ...