C語言題:自動對所有的整數進行求和並打印出結果
阿新 • • 發佈:2018-10-31
要求:
編寫一個程式,要求使用者輸入一串整數和任意數目的空格,這些整數必須位於同一行中,但允許出現在改行中的任何位置。當用戶按下鍵盤上的“Enter”鍵時,資料輸入結束。程式自動對所有的整數進行求和並打印出結果。
注意:
scanf的返回值:返回成功讀入的資料項數。
ungetc:作用是把一個(或多個)字元退回到stream代表的檔案流中。
下面的程式碼中因為getchar()從輸入流stdin中提取了一個字元,所以在後面ungetc中把剛提取的字元返回到輸入流stdin中。
程式碼如下:
#include <stdio.h> #include <stdlib.h> int main(void) { int i; int sum = 0; char ch; printf("請輸入一串整數和任意數目的空格:"); while ( scanf("%d", &i) == 1 ) { sum += i; //getchar()在輸入流stdin提取一個字元給了ch while ( (ch=getchar()) == ' ')//遮蔽空格 ; if ( ch == '\n' ) { break; } ungetc(ch, stdin); //將變數ch中存放的字元退回給stdin } printf("結果是: %d", sum); printf("\n"); system("pause"); return 0; }