我从早上起我的头,我甚至没有达到看起来像模式的东西。任何数量的帮助表示赞赏。 提前谢谢!
这不是我的家庭作业
编辑1:谢谢大家!我终于找到了解决方案。`#include<stdio.h>
void main(){
int n,i,count;
scanf("%d",&n);
int prev=n,next=(n*2)+(n-2),tc=1;
for(int i=1;i<=n;i++){
if(i==1) {
for(count=1;count<=(n*2)+(n-2);count++) {
if(count==prev || count==next) printf("*");
else printf(" ");
}
}
else {
for(count=1;count<=2*n*n;count++){
if(count==prev-tc || count==prev+tc || count==next-tc|| count==next+tc)
printf("*");
else printf(" ");
}
tc++;
}
printf("\n");
}
}`
答案 0 :(得分:1)
要解决此类问题,您必须找到空格公式和星形公式。这些公式告诉计算机必须在每一行打印多少空格和星星。 这就是所有这些类型的问题。
答案 1 :(得分:0)
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
for(int x=n;x>=i;x--){
printf(" ");
}
int y=2*i; int f=1;
while(y!=1){
if(f!=1&&f!=2*i-1){
printf(" ");
}
else if(i==n&&f==2*i-1){
printf("");
}
else{
printf("*");
}
f++;
y--;
}
if(i==n){
printf("*");
}
for(int xk=n;xk>i;xk--){
printf(" ");
}
int y1=2*i; int f2=1;
while(y1!=1){
if(f2==2*i-1){
printf("");
}
if(f2!=1&&f2!=2*i-1){
printf(" ");
}
else if(i==n&&f2==1){
printf(" ");
}
else{
printf("*");
}
f2++;
y1--;
}
printf("\n");
}
}