请不要使用char变量,直接手动计算需要多少空格: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 10:04:00 浏览: 71
好的,以下是不使用char变量手动计算空格的代码:
```C
#include <stdio.h>
#include <string.h>
int main() {
int width = 80, height = 25; // 控制台默认宽度和高度
int x = (width - 30) / 2, y = (height - 10) / 2;
int i, j;
char welcome[] = " 欢迎使用四则运算练习程序 ";
printf("\n");
for (i = 0; i < width; i++) {
printf("*");
}
printf("\n");
for (j = 0; j < y - 1; j++) {
printf("*");
for (i = 0; i < width - 2; i++) {
printf(" ");
}
printf("*\n");
}
printf("*");
for (i = 0; i < x; i++) {
printf(" ");
}
printf("%s", welcome);
for (i = 0; i < width - x - strlen(welcome) - 2; i++) {
printf(" ");
}
printf("*\n");
for (j = y; j < y + 9; j++) {
printf("*");
for (i = 0; i < width - 2; i++) {
printf(" ");
}
printf("*\n");
}
for (i = 0; i < width; i++) {
printf("*");
}
printf("\n");
return 0;
}
```
这个程序与之前的程序实现效果相同,但是去掉了使用char变量的部分,而是手动计算空格和星号的数量。通过循环遍历,依次输出星号和空格,从而实现字符画的效果。注意代码中使用了strlen函数来计算字符串的长度,需要包含头文件<string.h>。
阅读全文