请不要使用strlen函数,直接手动计算需要多少空格:int main() { int width = 80, height = 25; // 控制台默认宽度和高度 int x = (width - 30) / 2, y = (height - 10) / 2; char ch = '*'; int i, j; char welcome[] = " 欢迎使用四则运算练习程序 "; printf("\n"); for (i = 0; i < width; i++) { printf("%c", ch); } printf("\n"); for (j = 0; j < y - 1; j++) { printf("%c", ch); for (i = 0; i < width - 2; i++) { printf(" "); } printf("%c\n", ch); } printf("%c", ch); for (i = 0; i < x; i++) { printf(" "); } printf("%s", welcome); for (i = 0; i < width - x - strlen(welcome) - 2; i++) { printf(" "); } printf("%c\n", ch); for (j = y; j < y + 9; j++) { printf("%c", ch); for (i = 0; i < width - 2; i++) { printf(" "); } printf("%c\n", ch); } for (i = 0; i < width; i++) { printf("%c", ch); } printf("\n"); return 0; }
时间: 2023-11-08 12:04:01 浏览: 130
好的,根据您的要求,我会手动计算需要多少空格来输出欢迎语句。
以下是修改后的代码:
```c
#include <stdio.h>
int main() {
int width = 80, height = 25; // 控制台默认宽度和高度
int x = (width - 30) / 2, y = (height - 10) / 2;
char ch = '*';
int i, j;
char welcome[] = " 欢迎使用四则运算练习程序 ";
printf("\n");
for (i = 0; i < width; i++) {
printf("%c", ch);
}
printf("\n");
for (j = 0; j < y - 1; j++) {
printf("%c", ch);
for (i = 0; i < width - 2; i++) {
printf(" ");
}
printf("%c\n", ch);
}
printf("%c", ch);
for (i = 0; i < x; i++) {
printf(" ");
}
printf("%s", welcome);
for (i = 0; i < width - x - 2 - sizeof(welcome) + 1; i++) {
printf(" ");
}
printf("%c\n", ch);
for (j = y; j < y + 9; j++) {
printf("%c", ch);
for (i = 0; i < width - 2; i++) {
printf(" ");
}
printf("%c\n", ch);
}
for (i = 0; i < width; i++) {
printf("%c", ch);
}
printf("\n");
return 0;
}
```
修改的部分在第30行,使用sizeof(welcome)计算出字符串welcome的长度,然后通过width、x和sizeof(welcome)计算出需要多少个空格。注意,这里需要减去2,因为左右两侧都有一个边框字符。
阅读全文