想知道这个程序哪里错了,为什么变成了无限循环
#include<stdio.h>#include<stdlib.h>voidsanjiaoxing(inth,charc,intweizhi){for(inti=1;i...
#include<stdio.h>
#include<stdlib.h>
void sanjiaoxing(int h,char c,int weizhi)
{
for(int i=1;i<=h;i++)
{
int n=i*2-1;
weizhi--;
for(int m=1;m<=weizhi;m++)
{
printf(" ");
}
for(int j=1;j<=n;j++)
{
if(i<h)
{
if (j=1)
{
printf("%c ",c);
}
else if(j=n)
{
printf("%c\n",c);
}
else
{
printf(" ");
}
}
else if(i=h)
{
printf("%c \n",c);
}
else
{
break;
}
}
}
}
int main()
{
for(int i=1;i<=6;i++)
{
if (i!=1&i!=6)
{
printf("\t\t * *\n");
}
else
{
printf("\t\t * * * * * *\n");
}
}
sanjiaoxing(4,'*',6);
return 0;
} 展开
#include<stdlib.h>
void sanjiaoxing(int h,char c,int weizhi)
{
for(int i=1;i<=h;i++)
{
int n=i*2-1;
weizhi--;
for(int m=1;m<=weizhi;m++)
{
printf(" ");
}
for(int j=1;j<=n;j++)
{
if(i<h)
{
if (j=1)
{
printf("%c ",c);
}
else if(j=n)
{
printf("%c\n",c);
}
else
{
printf(" ");
}
}
else if(i=h)
{
printf("%c \n",c);
}
else
{
break;
}
}
}
}
int main()
{
for(int i=1;i<=6;i++)
{
if (i!=1&i!=6)
{
printf("\t\t * *\n");
}
else
{
printf("\t\t * * * * * *\n");
}
}
sanjiaoxing(4,'*',6);
return 0;
} 展开
1个回答
展开全部
有几个地方少了等号,判断语句变成了赋值语句,导致无限循环,如下:
#include <stdio.h>
#include <stdlib.h>
void sanjiaoxing(int h,char c,int weizhi)
{
for(int i=1;i<=h;i++)
{
int n=i*2-1;
weizhi--;
for(int m=1;m<=weizhi;m++)
{
printf(" ");
}
for(int j=1;j<=n;j++)
{
if(i<h)
{
if (j==1)//原来的代码少了等号
{
printf("%c ",c);
}
else if(j==n)//原来的代码少了等号
{
printf("%c\n",c);
}
else
{
printf(" ");
}
}
else if(i==h)//原来的代码少了等号
{
printf("%c \n",c);
}
else
{
break;
}
}
}
}
int main()
{
for(int i=1;i<=6;i++)
{
if (i!=1&i!=6)
{
printf("\t\t * *\n");
}
else
{
printf("\t\t * * * * * *\n");
}
}
sanjiaoxing(4,'*',6);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
void sanjiaoxing(int h,char c,int weizhi)
{
for(int i=1;i<=h;i++)
{
int n=i*2-1;
weizhi--;
for(int m=1;m<=weizhi;m++)
{
printf(" ");
}
for(int j=1;j<=n;j++)
{
if(i<h)
{
if (j==1)//原来的代码少了等号
{
printf("%c ",c);
}
else if(j==n)//原来的代码少了等号
{
printf("%c\n",c);
}
else
{
printf(" ");
}
}
else if(i==h)//原来的代码少了等号
{
printf("%c \n",c);
}
else
{
break;
}
}
}
}
int main()
{
for(int i=1;i<=6;i++)
{
if (i!=1&i!=6)
{
printf("\t\t * *\n");
}
else
{
printf("\t\t * * * * * *\n");
}
}
sanjiaoxing(4,'*',6);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询