c 语言结束程序语句,关于程序跳过语句的有关问题啊

【求助】关于程序跳过语句的问题啊!!!!

在输入部分的第二个scanf语句 为何不会执行???? 求解!!

/*-----------------------

时间:2014年3月28日 20:24:46

目的:将一系列的数字,从大到小排列

------------------------*/

#include 

#include 

main(void)

{

int i=0,k=1;  //循环变量

int num[100];//排序数组

int temp;//中间变量

int n=0;//计数变量

char end='y';

printf("-----------此程序可以对一组正整数数值进行排序------------\n");

puts("\n\n");

printf("输入0将结束输入!\n");

putchar('\n');

//输入部分

for(i=0;i<100;i++)

{

printf(">>>请输入第%3d个数:",i+1);

scanf("%d",&num[i]);

if(0 == num[i])

{

printf(">>>您输入了数字0,是否将其作为结束标志?(Y/N)\n");

scanf("%c",&end);

if('Y'==end || 'y'==end)

{

i = 100;

break;

}

}

n = i+1;

}

putchar('\n');

//排序部分

for(i=0; i

{

for(k=i+1; k

if( num[i] 

{

temp   = num[i];

num[i] = num[k];

num[k] = temp;

}

}

//输出部分

printf("最后数列为:");

for(i=0; i

printf("%d ", num[i]);

putchar('\n');

return 0;

}

------解决方案--------------------

printf(">>>您输入了数字0,是否将其作为结束标志?(Y/N)\n");

因为这句printf输出了一个换行符,换行被后面的scanf语句当做输入了

在第二句scanf语句前面加一句getchar();

------解决方案--------------------

在第二个scanf之前加上getchar()来接收第一个scanf的回车字符

for(i=0;i<100;i++)

{

printf(">>>请输入第%3d个数:",i+1);

scanf("%d",&num[i]);

if(0 == num[i])

{

printf(">>>您输入了数字0,是否将其作为结束标志?(Y/N)\n");

getchar();//接收第一个scanf的回车字符

scanf("%c",&end);

if('Y'==end

------解决方案--------------------

'y'==end)

{

i = 100;

break;

}

}

n = i+1;

}

putchar('\n');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值