1. 程式人生 > >C語言題:自動對所有的整數進行求和並打印出結果

C語言題:自動對所有的整數進行求和並打印出結果

要求:

編寫一個程式,要求使用者輸入一串整數和任意數目的空格,這些整數必須位於同一行中,但允許出現在改行中的任何位置。當用戶按下鍵盤上的“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;
}