1.%c不忽略空格( )
2.启示
#include <stdio.h>
#include <string.h>
int main(){char str[100]={0};int x,y;int n1,n2,n3;int i;while(scanf("%s",str)!=EOF){i=strlen(str);if(i%3==0){//12=4+4+6-2n1=i/3;n3=i/3;n2=i/3+2;}else if(i%3==1){//16=6+6+6-2n1=(i+2)/3;n3=(i+2)/3;n2=(i+2)/3;}else if(i%3==2){//11=4+4+5-2n1=(i+1)/3;n3=(i+1)/3;n2=(i+1)/3+1;}char U[50][50];for(x=0;x<50;x++){for(y=0;y<50;y++){U[x][y]=' ';}}for(x=0,i=0;x<n1;x++){U[x][0]=str[i];i++;}for(y=1;y<n2;y++){U[n1-1][y]=str[i];i++;}for(x=n1-2,y=n2-1;x>=0;x--){U[x][y]=str[i];i++;}for(x=0;x<n1;x++){for(y=0;y<n2;y++){printf("%c",U[x][y]);}printf("\n");}}return 0;
}
scanf("%s",str)输入字符串
for(x=0;x<50;x++){
for(y=0;y<50;y++){
U[x][y]=' ';
}
}
可以先令所有字符数组元素都是空格,不能只是设为0(\0)结束符输出,有些平台会直接当作结束标志。
小结
2025/2/19 22:57于安徽家中