算法筆記刷題8(PAT1009)

算法筆記刷題8(PAT1009)

題目

給定一句英語,要求你編寫程序,將句中全部單詞的順序顛倒輸出。ios

輸入格式:

測試輸入包含一個測試用例,在一行內給出總長度不超過 80 的字符串。字符串由若干單詞和若干空格組成,其中單詞是由英文字母(大小寫有區分)組成的字符串,單詞之間用 1 個空格分開,輸入保證句子末尾沒有多餘的空格。算法

輸出格式:

每一個測試用例的輸出佔一行,輸出倒序後的句子。測試

輸入樣例:

Hello World Here I Come

輸出樣例:

Come I Here World Hello

這一題其實很是簡單,我以前在c語言的題庫裏面就作過一遍。可是我字符串實在學得太爛了,致使我只好從新給代碼加了一遍註釋。(你好爛哦)spa

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int main(){
    char str[81];
    cin.getline(str,81);//沒有用getchar(),不然有些編譯器有奇奇怪怪的問題
    int i=0,k=1,let[81];
    let[0]=-1;
    while(str[i]!='\0'){
    	if(str[i]==' '){
    		let[k++]=i;//記錄空格的位置
		}
		i++;
	}
	let[k]=strlen(str);//記錄字符串的長度
	for(int i=k;i>0;i--){
		for(int j=let[i-1]+1;j<let[i];j++){
				printf("%c",str[j]);//倒序輸出字符串	
			}
		if(i!=1)printf(" ");
	}
    return 0;
}
相關文章
相關標籤/搜索