永发信息网

求解C语言程序,说的详细点最好

答案:5  悬赏:50  手机版
解决时间 2021-03-29 00:44
  • 提问者网友:戎马万世
  • 2021-03-28 19:13
求解C语言程序,说的详细点最好
最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2021-03-28 20:43
你上面的程序运行结果不是菱形,如下:

我帮你重新写了个,输出菱形,程序如下(中间有注释):
#include 
int main() 

     int i,j;
     int N;
     printf("请输入一个整数:");
     scanf("%d",&N); //N为第一行到中间对角线的行数,比如你想得到一个总共5行的菱形,中间对角线就是3

     //下面是上半部分菱形
     for(i=1;i<=N;i++) 
     { 
          for(j=1;j<=N-i;j++) 
               printf(" "); //找规律,每一行的空格最大数为(N-i)个
          for(j=N-i+1;j<=N+i-1;j++) //每一行最后一个空格列数为(N-i),下一列就是"*"开始,所以"*"的起始列为(N-i+1),最后一列为(2*N-(N-i+1))
               printf("*");//找规律,每一行的"*"最大数为(N+i-1)个
          printf("
"); 
 } 

     //下面是下半部分菱形
     for(i=N+1;i<=2*N-1;i++) 
     { 
          for(j=1;j<=i-N;j++) 
               printf(" ");
          for(j=i-N+1;j<=3*N-i-1;j++)
               printf("*");
          printf("
"); 
     } 
     return 0;
}运行结果如下(输出9行的菱形,中间行为5,所以输入5):

全部回答
  • 1楼网友:舊物识亽
  • 2021-03-29 01:06
你这个程序绝对打不出来那个图形....
  • 2楼网友:时间的尘埃
  • 2021-03-28 23:33
#include
int main()
{
int a,b,c,d,h,i,j,k;
for(b=1;b<=4;b++)
{
for(c=1;c<=(4-b)*2;c++)
printf(" ");
for(d=1;d<=2*b-1;d++)
printf("* ");
printf("\n");
}
for(i=1;i<=3;i++)
{
for(j=1;j<=2*i;j++)
printf(" ");
for(k=1;k<=(3-i)*2+1;k++)
printf("* ");
printf("\n");
}
return 0;
}
  • 3楼网友:时间的尘埃
  • 2021-03-28 22:31
首先,这个程序出来的图案绝对不可能是带空格的,应该是:
*
**
***
****
*****
****
***
**
*
因为空格也是字符,也是需要输出的,其次,这个程序只是使用了2次2个for循环来控制每行*的个数,符合语法所以是可以的追问确实不行,我搞错了,他的不带空格。
  • 4楼网友:山有枢
  • 2021-03-28 22:05
#include
int main()
{
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=i;j++)
printf("*");
printf("\n");
}

for(i=1;i<=5;i++)
{
for(j=4;j>=i;j--)
printf("*");
printf("\n");
}
getchar();
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯