| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 591 人关注过本帖
标题:程序出了问题,请指错
只看楼主 加入收藏
qqredarmy1
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-9-24
结帖率:0
收藏
已结贴  问题点数:20 回复次数:9 
程序出了问题,请指错
#include<stdio.h>
float Xd,Xf,Xw,a,R;
float f(float);
float g(float);
float h(float);
main()
{
  printf("pao dian jin liao\n");
  printf("please enter the value of Xd,Xf,Xw,,a,R\n");
  scanf("%f%f%f%f%f",&Xd,&Xf,&Xw,&a,&R);
  
  int i,j,sum;
  float X[10],Y[10],M[10],N[10];
  Y[1]=Xd;
  for(i=1;i<10;i++)
    {
    X[i]=f(Y[i]);
    if(X[i]<=Xf)
      break;
    Y[i+1]=g(X[i]);
     }
   printf("jin liao ban wei zhi shi%d\n",i);
   for(j=1;j<10;j++)
     {
    N[j+1]=h(M[j]);
    M[j+1]=f(N[j+1]);
    if(M[j+1]<=Xw)
       break;
      }
   for(i=1;i<10;i++)
    {
      while(X[i])
     printf("when i=%d,X[i]=%f\n",i,X[i]);
      while(Y[i])
    printf("when i=%d,Y[i]=%f\n",i,Y[i]);
     }
    for(j=1;j<10;j++)
    {
      while(M[i])
     printf("when j=%d,M[i]=%f\n",j,M[i]);
      while(Y[i])
    printf("when j=%d,N[i]=%f\n",j,N[i]);
     }
sum=i+j;
printf("zong ban shu shi %d\n",sum);
return;
}
float f(float b)
  {
     float x;
     x=b/(a+(a-1)*b);
     return(x);
  }
float g(float c)
  {
    float y;
    y=R/(R+1)*c+1/(R+1)*Xd;
    return(y);
  }
float h(float c)
  {
    float z;
    z=1.33*c-0.033;
     return(z);
  }
搜索更多相关主题的帖子: include please 
2013-09-24 00:08
qqredarmy1
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-9-24
收藏
得分:0 
编译没出错,也没警告,我猜是哪个数组在for循环中应用错了,运行结果
图片附件: 游客没有浏览图片的权限,请 登录注册
2013-09-24 00:11
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:4 
编译没出错
2013-09-24 07:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
這種不描述具體問題的帖子,我以前鎖過多次,鎖不勝鎖,總是有人敎不聽。

授人以渔,不授人以鱼。
2013-09-24 12:57
liufashuai
Rank: 9Rank: 9Rank: 9
来 自:冥界-魔域-魂殿
等 级:蜘蛛侠
威 望:1
帖 子:370
专家分:1374
注 册:2012-6-22
收藏
得分:4 
把问题和错误描述清楚一下,让大家从头看你代码,猜测你程序的意思啊。。。。

有一种落差是,你配不上自己的野心,也辜负了所受的苦难。






2013-09-24 13:14
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:4 
以下是引用TonyDeng在2013-9-24 12:57:45的发言:

這種不描述具體問題的帖子,我以前鎖過多次,鎖不勝鎖,總是有人敎不聽。

“驴叫”不听,对牛弹琴。等你来结贴!

♂ 死后定当长眠,生前何须久睡。♀
2013-09-24 14:02
qqredarmy1
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-9-24
收藏
得分:0 
回复 4楼 TonyDeng
在此我解释下,本人是化工专业的本科生,这个程序是为了解决一道化工原理的题目的。我想各位都是it行业的,化工专业的题目可能大家都看不懂啊。

本人大一学的c语言,现在有好多忘了;

我自己想了下,问题出在这

for(i=1;i<10;i++)
    {
      while(X[i])
     printf("when i=%d,X[i]=%f\n",i,X[i]);
      while(Y[i])
    printf("when i=%d,Y[i]=%f\n",i,Y[i]);
     }

其中
while(X[i])
     printf("when i=%d,X[i]=%f\n",i,X[i]);
一但X[i]是个正数,这个循环无法结束;

还是谢谢有这么多人热心回帖!!!
2013-09-24 14:05
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不是要你描述專業,而是要你把自己的問題描述清楚:原本希望怎樣的,結果如何不是期望的結果,是什麽現象,自己是怎麽想的,等等。

你的while()循環,到底希望怎樣的條件才結束或繼續,好好的有邏輯表達式你不寫,偏要寫while(X[i])?C的壞習慣學多了,本來不應錯的也錯了,自找的。

授人以渔,不授人以鱼。
2013-09-24 14:13
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 

for(i=1;i<10;i++)
{
    while(X[i])
        printf("when i=%d,X[i]=%f\n",i,X[i]);
    while(Y[i])
        printf("when i=%d,Y[i]=%f\n",i,Y[i]);
}
就算不說那不好的習慣,你這段代碼邏輯上就成問題,與專業無關。

while()循環的語法,是對圓括號中的表達式求値,若結果為真,循環就持續,否則結束循環。那麽就把眼光盯在這個表達式上!你的表達式是X[i],這個表達式的結果是真還是假呢,根據C的規定,任何非零的値均為真,也就是說,你這代碼只有當X[i]為零時才會結束循環(若是這個目的,正常的寫法應是while(X[i] != 0),直接寫邏輯表達式,而不是用C的默認法,這才是數學邏輯,懂數學的人都看得懂,你那種是只有懂C的人才看得懂,優劣自見)。

好了,現在看循環裡面幹什麽。你的循環中只有一條語句,就是輸出,但要注意,你在這裡並沒有任何改變X[i]値的操作,亦即X[i]在循環中是自始至终不會變的,若能進入這個循環,就永遠不會從真變為假,循環就永遠不會結束!

那麽,你寫while()循環幹什麽呢?你要寫的應該是if()語句,而不是循環語句!

授人以渔,不授人以鱼。
2013-09-24 14:40
wuweiweiwei
Rank: 1
等 级:新手上路
帖 子:1
专家分:4
注 册:2013-9-24
收藏
得分:4 
同意楼上的
2013-09-24 15:57
快速回复:程序出了问题,请指错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040837 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved