【发布时间】:2022-01-01 09:34:04
【问题描述】:
我正在尝试开发一个通过给定输入生成 * 模式的 C 代码。首先它必须打印星号下降 2 和上升 2 之后。像:
输入
enter number: 8
输出
********
******
****
**
****
******
********
这是我到目前为止所做的:
#include <stdio.h>
int printpattern(int n){
if(n==0)return 0;
printf("*");
printpattern(n-1);
}
int pattern(int n){
if(n==0)return 0;
puts("\n");
printpattern(n);
pattern(n-2);
}
int main(){
int n;
puts("number: ");
scanf("%d", &n);
if(n%2==1){
puts("must be even");
main();
}
pattern(n);
return 0;
}
谢谢..
【问题讨论】:
-
您的代码格式错误,因此无法读取。你应该告诉我们你得到了什么输出以及问题是什么(不仅仅是“为我完成我的程序”)。您显然需要一个从 n 倒数到 1 或 2 的循环,打印最小值,然后再次返回到 n。如果你愿意,你也可以递归而不是循环。
-
永远不要从你的程序中调用
main。 -
请勿使用
scanf输入参数。main有 2 个参数,你应该在那里传递参数(即,作为启动程序时的参数)。