您的位置:程序门 -> c/c++ ->



循环问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


循环问题[已结贴,结贴人:xiaoxiyu]
发表于:2007-10-23 23:23:09 楼主
有一段代码:
#include   <stdio.h>
#include   <math.h>
main()
{
        float   r2,r3,r4,rg,e,ig,result,uper,lint;
        char   c;
        printf("please   input   r2,and   r3,and   r4,and   e,and   rg(end   with   enter):");
        scanf("%f%f%f%f%f",&r2,&r3,&r4,&e,&rg);
        do
        {
                printf("please   input   ig:");
                scanf("%f",&ig);
                result=(r2*r3*e-ig*(r2*r3*r4+rg*r2*r3+rg*r2*r4))/(e*r4+ig*(r2*r3+r3*r4+r4*r2+rg*r3+rg*r4));
                printf("the   result   is:%f\n",result);
                printf("the   1/t   is:%f\n",1/result);
                printf("the   ln   t   is:%f\n",log(result));
                printf("   continue   with   y");
             
        }while((c=getchar())=='y');
     
}                
                      为什么不能循环啊.
发表于:2007-10-23 23:30:091楼 得分:9
c/c++ code
#include <stdio.h > #include <math.h > main() { float r2,r3,r4,rg,e,ig,result,uper,lint; char c; printf("please input r2,and r3,and r4,and e,and rg(end with enter):"); scanf("%f%f%f%f%f",&r2,&r3,&r4,&e,&rg); do { printf("please input ig:"); scanf("%f",&ig); result=(r2*r3*e-ig*(r2*r3*r4+rg*r2*r3+rg*r2*r4))/(e*r4+ig*(r2*r3+r3*r4+r4*r2+rg*r3+rg*r4)); printf("the result is:%f\n",result); printf("the 1/t is:%f\n",1/result); printf("the ln t is:%f\n",log(result)); printf(" continue with y"); fflush(stdin); }while((c=getchar())== 'y '); }
发表于:2007-10-23 23:31:102楼 得分:9
问题在
do{
...
}while((c=getchar())==   'y   ');
getchar在第一次收到y后只执行一次

具体解决方法可以
do{
...
        fflush(stdin);
}while((c=getchar())==   'y   ');
发表于:2007-10-23 23:33:393楼 得分:2
对,得用fflush清空一下
发表于:2007-10-23 23:38:264楼 得分:0
结了,多谢三位,
今天运气不错.
这么快就搞定了.呵呵,最到三位老鸟,
怎么c语言的书上就没介绍这个呢.害我瞎搞一通.
烂书!!!!!!!!!!!!!!!!!!!


快速检索

最新资讯
热门点击