华为机考HJ13句子逆序C语言弱智解法
生活随笔
收集整理的這篇文章主要介紹了
华为机考HJ13句子逆序C语言弱智解法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
華為機(jī)考HJ13句子逆序C語言弱智解法
句子逆序C語言低端解法,易于理解。
1.收數(shù)據(jù)老生常談。
2.將句子全部逆序。
3.將單詞正序。
(這里有一個(gè)bug,最后一個(gè)詞(原句子第一個(gè)詞)總是收不到,所以寫了個(gè)補(bǔ)丁。先記錄空格的數(shù)量,當(dāng)?shù)诙巫x取的時(shí)候,讀到最后一個(gè)空格的時(shí)候,直接跳進(jìn)最后一個(gè)詞,然后單獨(dú)把最后一個(gè)詞正序輸出,此時(shí)用這個(gè)小功能內(nèi)部的變量繼承了主循環(huán)的變量,正序之后直接將輸出第一個(gè)詞。)
4.通過小功能內(nèi)部的變量終值與字符串長度比較,以順利跳出程序。
#include<stdio.h>
#include<string.h>int len=0;
char stru[10000],in,asb[10000];
int i,j,k;
int pau,pau2;
char reg;
int flag,flag2;
int esnum;int main()
{//收入數(shù)據(jù)while (1){scanf("%c", &in);// in = getchar();if (in == '\n')break;stru[len++] = in;}//句子全部逆序pau = len-1;for(i=0;i<len/2;i++,pau--){reg = stru[i];stru[i] = stru[pau];stru[pau] = reg;//printf("%s",&stru[i]);}//統(tǒng)計(jì)空格數(shù)量for(i=0;i<len;i++){if(stru[i] == ' ')esnum++;}//單詞正序 i=0,j=0;for(i=0;i<len;i++){//最后一個(gè)空格之前的單詞正序if((stru[i] == ' ')){ for(k=0;k<j/2;k++,pau--){reg = asb[k];asb[k] = asb[pau];asb[pau] = reg;}for(k=0;k<j;k++){printf("%c",asb[k]);}j=0;printf(" ");flag++; // if(flag==esnum)// continue;}else{asb[j]=stru[i];j++;pau=j-1;}if(flag==esnum)//空格數(shù)量比較,開啟末尾單詞正序小功能{flag2=i;pau2=len-1;for(k=flag2;k<(flag2+(len-flag2)/2);k++,pau2--){reg = stru[k];stru[k] = stru[pau2];stru[pau2] = reg;}for(;flag2<len;flag2++){printf("%c",stru[flag2]);}printf("\n");break;}if(flag2==len-1)//小功能內(nèi)部的變量終值與字符串長度比較break;}return 0;}
總結(jié)
以上是生活随笔為你收集整理的华为机考HJ13句子逆序C语言弱智解法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 看电影时为啥总自动关机
- 下一篇: 上海欢乐谷五点之后还可以玩什么