no.1
阿新 • • 發佈:2017-09-22
n) 操作 判斷 += getchar shel tdi 兩個 單引號
#include <stdio.h> #include <stdlib.h> void main() { int i; int sum = 0; char ch; printf("請輸入一串整數和任意數目的空格: "); while( scanf("%d", &i) == 1 ) { sum += i; while( (ch=getchar()) == ‘ ‘ )//這裏兩個單引號之間是一個空格 ; if( ch == ‘\n‘ ) { break; } ungetc( ch, stdin ); } printf("結果是: %d", sum); printf("\n"); system("pause"); } //編寫一個程序,要求用戶輸入一串整數和任意數目的空格,這些整數必須位於同一行中,但允許出現在該行的任何位置。 //當用戶按下鍵盤的Enter鍵時,數據輸入結束。程序自動對所有的整數進行求和並打印結果 // -1::判斷輸入的是不是整數,如果是整數,那麽則加到總數中來 -2:判斷輸入的是不是空格,如果是空格,那麽則不進行任何操作 -3:判斷輸入的空格是不是換行,如果這個空格是換行,那麽則跳出這個判斷 // ungetc(ch, stdin);將你讀到的字符回退到輸入流中 比如上面的程序你先輸入數字25,scanf讀到i中,加到sum中,然後你再輸入,調用ch=getchar(),發現ch不是‘ ‘也不是‘\n‘,而是一個數,比如’7‘,顯然這是你要繼續加到sum中的數,要用scanf讀到i中,但是你已經將這個‘7‘用getchar讀出來了,只好用ungetc再把這個‘7‘給退回去 // scanf()函數返回的值的意義為:正確按指定格式輸入變量的個數;也即能正確接收到值的變量個數。 就是說正確接收值的個數。此時scanf("%d",&i)要求輸入一個int數。因此只要按格式輸入一個int數,結果都是1. 假如scanf("%d%d%d",&i,&j,&k)。你輸入時10 20 d則scanf返回為2 // if( ch == ‘\n‘ ) { break; } 當判斷是換行時,則跳出。 // system就是調用從程序中調用系統命令(和shell命令)。 system("pause")就是從程序裏調用“pause”命令; 而“pause”這個系統命令的功能很簡單,就是在命令行上輸出一行類似於“Press any key to exit”的字,等待用戶按一個鍵,然後返回。
no.1