2025/2/19机试准备
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-2
n1=i/3;
n3=i/3;
n2=i/3+2;
}
else if(i%3==1){//16=6+6+6-2
n1=(i+2)/3;
n3=(i+2)/3;
n2=(i+2)/3;
}
else if(i%3==2){//11=4+4+5-2
n1=(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于安徽家中