c语言问题,总是陷入死循环,??

来源:百度知道 编辑:UC知道 时间:2024/05/17 09:12:47
#include<stdio.h>
void main()
{
int i,j,k,n;
while(n!='a')
{
printf("请输入一个奇数:");
scanf("&d",&n);
if(n%2==0)
{
printf("您输入的是偶数,请输入一个奇数:");
continue;
}
for(i=1;i<=(n+1)/2;i++)
{
for(j=0;j<=(n+1)-2*i;j++)
{
printf(" ");
}

for(k=1;k<=2*i-1;k++)
{
printf("* ");
}
printf("\n");
}
for(i=1;i<=(n-1)/2;i++)
{
for(j=0;j<=2*i;j++)
{
printf(" ");

}
for(k=1;k<=n-2*i;k++)
{
printf("* ");
}
printf("\n");
}
scanf("%d",&n);
}
}
这个程序好像所有的for循环都不执行,如果输入的奇数,只会重复“请您输入一个奇数”,如果是偶数,就只会重复,“您输入的是一个偶数,请输入一个奇数”,这是怎么回事,????

#include<stdio.h>
void main()
{
int i,j,k,n;

n=1;//要先把一个值付给n
while(n!=0)//'a') //n是整数,最好跟整数进行比较
{
printf("请输入一个奇数:");
scanf("%d",&n); //%d而不是&d
if(n%2==0)
{
printf("您输入的是偶数,请输入一个奇数:");
continue;
}
for(i=1;i<=(n+1)/2;i++)
{
for(j=0;j<=(n+1)-2*i;j++)
{
printf(" ");
}

for(k=1;k<=2*i-1;k++)
{
printf("* ");
}
printf("\n");
}
for(i=1;i<=(n-1)/2;i++)
{
for(j=0;j<=2*i;j++)
{
printf(" ");

}
for(k=1;k<=n-2*i;k++)
{
printf("* ");
}
printf("\n");
}
scanf("%d",&n);
}
}

给你改了一下更加简洁清晰,我运行过了,结果是对的,看看是不是满足你的要求

#include<stdio.h>
void main()
{
int i,j,k,n;
printf(&qu