如何修改这个程序以让用户动态输入每行星的数量?
时间: 2024-09-25 19:03:21 浏览: 9
NGW行星齿轮减速器设计系统(1).zip
如果你想要让用户动态输入每行星的数量,可以稍微修改`print_triangle`函数,使其接受两个参数,一个是总行数,另一个是当前行的星数。然后在内层循环里让星的数量成为用户输入的值。下面是相应的修改:
```c
#include <stdio.h>
// 函数用来打印带动态宽度的倒三角
void print_triangle(int total_rows, int current_width) {
for (int i = total_rows; i >= 1; i--) {
for (int j = 1; j <= current_width; j++) {
printf("*");
}
printf("\n");
current_width -= 2; // 每次递减2,形成逐渐缩小的效果
}
}
int main() {
int total_rows, current_width;
printf("请输入倒三角的总行数: ");
scanf("%d", &total_rows);
// 对于每行,询问用户需要多少个星
for (int i = 1; i <= total_rows; i++) {
printf("请输入第 %d 行的星的数量: ", i);
if (scanf("%d", ¤t_width) != 1 || current_width <= 0) {
printf("错误!星的数量必须是正整数。请重新输入。\n");
// 清空输入缓冲,防止后续输入干扰
while(getchar() != '\n');
continue; // 跳过这次循环,继续下一次
}
}
print_triangle(total_rows, current_width);
return 0;
}
```
现在,用户每次迭代都会被问及该行应该有多少个星。如果输入无效(非正整数),程序会提示用户重新输入。
阅读全文