这个代码还是有一个小问题,最后一行是空行
原因是不知道当前这一行有没有要输出的字符
解决方法可以是,先扫描一遍当前行,如果有需要输出的字符再循环输出#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int main() {
char *array[5] = {"FishC", "Five12345", "Star", "Good", "Wow"};
size_t size[5] = {strlen(array[0]), strlen(array[1]), strlen(array[2]), strlen(array[3]), strlen(array[4])};
for(size_t y = 0; ; ++y) {
bool flag = true;
for(size_t x = 0; x < 5; ++x) {
if(y < size[x]) {
flag = false;
printf("%c ", array[x][y]);
} else printf(" ");
}
putchar('\n');
if(flag) break;
}
return 0;
}
|