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

#include<stdio.h>voidmain(){inti,j,k,n;while(n!='a'){printf("请输入一个奇数:");scanf("&d",&n... #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循环都不执行,如果输入的奇数,只会重复“请您输入一个奇数”,如果是偶数,就只会重复,“您输入的是一个偶数,请输入一个奇数”,这是怎么回事,????
展开
 我来答
stealthes
2008-07-21 · TA获得超过575个赞
知道小有建树答主
回答量:83
采纳率:0%
帮助的人:0
展开全部
给你改了一下更加简洁清晰,我运行过了,结果是对的,看看是不是满足你的要求

#include<stdio.h>
void main()
{
int i,j,k,n;
printf("请输入一个奇数:");
scanf("%d",&n); //先输入一个数
printf("\n");
if(n!=0) //判断是否为0,不为0则继续执行,你这里原来是用的while就造成了死循环
{
while(n%2==0) //判断奇偶,若为偶数则循环提示重新输入
{
printf("您输入的是偶数,请输入一个奇数:");
scanf("%d",&n);
}
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");
} //以上输出图形的两个for循环帮你去掉了几个不必要的大括号,这样看起来更简洁
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
高金山
2008-07-21 · TA获得超过1万个赞
知道大有可为答主
回答量:4101
采纳率:0%
帮助的人:1706万
展开全部
#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);
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
考阵cO
2008-07-21 · TA获得超过785个赞
知道小有建树答主
回答量:532
采纳率:100%
帮助的人:332万
展开全部
对啊,一楼说得对,可是他还是没说详细(PS:不好意思一楼),
如果您的本意是输入“a”得到循环结束的话》》那么只有输入97才行,记不住了,或许是98.这是a对应的ASCLI码。废话一点:就是当您输入a的时候,并不输入到内存中"a",而是: “a/0”》》》关于它的详细您可以到百度去查,是有的。
希望我的回答可以帮到您》》》》
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
后仲0eq
2008-07-21 · TA获得超过1225个赞
知道小有建树答主
回答量:490
采纳率:0%
帮助的人:0
展开全部
while(n!='a') 这个的问题```除非你输入的是a的ascii码值否则永远在里面绕````
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式