赞
踩
本题要求编写一个解密藏尾诗的程序。
输入为一首中文藏尾诗,一共四句。每句一行,但句子不一定是等长的,最短一个汉字,最长九个汉字。注意:一个汉字占两个字节。
取出每句的最后一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。
悠悠田园风
然而心难平
兰花轻涌浪
兰香愈幽静
风平浪静
判定结束符位置,输出结束符’\0’前两个字符
//这道题很有意思啊 #include<stdio.h> #define n 4 int main() { char s[5][20];//放汉字 char c; int i,j; for(i=0;i<n;i++) { j=0; while(1) { c=getchar(); if(c=='\n') break; else s[i][j]=c; j++; } s[i][j]='\0';//结束符 } for(i=0;i<n;i++) { for(j=0;;j++) { if(s[i][j+1]=='\0') { printf("%c%c",s[i][j-1],s[i][j]);//一个汉字两个字符 break; } } if(i==n-1) printf("\n"); } return 0; }
---------------------------------------分割线---------------------------------------
经过网友学习吧少年指正后,发现确实有很多改进的地方。
对于输入,gets就可以了。
对于输出,可以用指针找到每一行结束符’\0’,用%s输出’\0’前两个字符。
//这道题很有意思啊 #include<stdio.h> #define n 4 int main() { char s[5][20];//放汉字 char *p; int i; for(i=0;i<n;i++) gets(s[i]); for(i=0;i<n;i++) { p=s[i]; while(*p!='\0') p++; printf("%s",p-2);//一个汉字两个字符 } printf("\n"); return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。