当前位置: 代码迷 >> C语言 >> [求助]循环问题
  详细解决方案

[求助]循环问题

热度:131   发布时间:2007-04-13 08:08:50.0
[求助]循环问题
以下是我的一小段程序,但形成了死循环,无论我输入的数含不含小数点,系统都会提示我输入一个带小数点的数字,请帮忙指点,错误出在哪里,谢谢
do
{
printf("请输入金额:");
gets(grade);
for(i=0;i<50;i++)
{
if(grade[i]!='.')
{
printf("请输入一个带有小数点的金额!\n");
break;
}
}
}while(grade[i]!='.');
搜索更多相关的解决方案: 问题  系统  小数点  

----------------解决方案--------------------------------------------------------
不懂....
----------------解决方案--------------------------------------------------------

printf("请输入金额:\n");
gets(grade);

while(strchr(grade, '.') == 0)
{
printf("请输入一个带有小数点的金额!\n");
printf("请输入金额:\n");
gets(grade);
}


你的循环判断条件不对,这样写试试


----------------解决方案--------------------------------------------------------
3楼您的方法可行 可是我为什么不能像我那样判断呢 判断数组中的任一个数是否为小数点
----------------解决方案--------------------------------------------------------
do
{
printf("请输入金额:"); // 假设输入值为123.456
gets(grade);
for(i=0;i<50;i++)
{
if(grade[i]!='.') // i=0, grade[i]=1,if条件成立,执行括号内的语句
{
printf("请输入一个带有小数点的金额!\n");
break; // 跳出for循环
}
}
}while(grade[i]!='.'); // while条件成立(grade[i]=1),继续循环

只要你输入的第一个字符不是‘.’,就会一直循环下去
----------------解决方案--------------------------------------------------------
哦 了解了 谢谢你朋友
----------------解决方案--------------------------------------------------------
for(i=0;i<50;i++)
{
if(grade[i]!='.')
{
printf("请输入一个带有小数点的金额!\n");
break;
}
}
你这个循环是判断第一个字符是不是小数,如果是继续,不是退出
do
{
printf("请输入金额:");
gets(grade);
for(i=0;i<lenstr(grade);i++)
if(grade[i]!='.')
break;
}while(grade[i]!='.');

----------------解决方案--------------------------------------------------------
以下是引用非凡DZ在2007-4-13 8:08:50的发言:
以下是我的一小段程序,但形成了死循环,无论我输入的数含不含小数点,系统都会提示我输入一个带小数点的数字,请帮忙指点,错误出在哪里,谢谢
do
{
printf("请输入金额:");
gets(grade);
for(i=0;i<50;i++)
{
if(grade[i]!='.')//如果字符串不全部是以'.'组成,就一定会死循环.但即使符合前面的条件,也会因为i越界造成死循环.
{
printf("请输入一个带有小数点的金额!\n");
break;
}
}
}while(grade[i]!='.');


----------------解决方案--------------------------------------------------------
do
{
int flag=1;
printf("请输入金额:");
gets(grade);
for(i=0;i<50;i++)
{
if(grade[i]=='.')
{
flag=0;
break;
}
}
if(flag)printf("请输入一个带有小数点的金额!\n");

}while(flag);
----------------解决方案--------------------------------------------------------

五楼。。。


----------------解决方案--------------------------------------------------------
  相关解决方案