首页 > 用户发贴区 > 编程问题提问区 > 刚入C 语言时碰到的问题
2008
03-30

刚入C 语言时碰到的问题

输入三个数,求最大数和最小数的和?(下面是我编写的,但调试不出来,请高手们帮帮忙,谢谢了!)


#include “stdio.h”


float max(float x,float y,float z);


float min(float x,float y,float z);


float sum(float m,float n);


main()


{float x,y,z,m,n,h;


 printf(“please input three numbers:”);


 scanf(“%f,%f,%f”,&x,&y,&z);


 m=max(x,y,z);   n=min(x,y,z);  h=sum(m,n);


 printf(“the sum of max and min is:%f\n”,h);



 float max(float x,float y,float z)


{ if(x>y) max=x;else max=y;


  if(z>max) max=z return max;


}


 float min(float x,float y,float z)


{if(x<y) min=x;else min=y;


 if(z<min) min=z return min;


}


 float sum(float m,float n)


{int h;


  h=m+n;


}


      是什么问题呀??????


刚入C 语言时碰到的问题》有 12 条评论

  1. 独孤傲天 说:

    你想知道什么,出现了什么问题?你总知道吧,

  2. peiaotian 说:

    此程序有哪些错误?帮忙改一下啦!

  3. ycgmagic 说:

    定义有点错误吧,编程有点烦琐,应该用switch语句

  4. 幻海之涛 说:

    问题很多哦大哥~~

    先不管你要干嘛,我找出了一点点语句上的问题

    float sum(float m,float n)

    {

      int h;

      h=m+n;

    }

    首先你的h定义为int了,应该也为float

    这个定义中,你没有把h  return

    还有挺多的哦,我继续找

  5. 幻海之涛 说:

    float max(float x,float y,float z)

    { if(x>y) max=x;else max=y;

      if(z>max) max=z return max;  /*z的后面少了;而且忘记定义max了*/

    }

     float min(float x,float y,float z)

    {if(x<y) min=x;else min=y;

     if(z<min) min=z return min; /*z的后面少了;而且忘记定义min了*/

    }

    在这些定义函数中的变量和主函数main()中的变量互不影响,所以也是要定义的

  6. 幻海之涛 说:

    #include “stdio.h”

    float max(float x,float y,float z);

    float min(float x,float y,float z);

    float sum(float m,float n);

    main()

    {float x,y,z,m,n,h;/*你的这个分号很奇怪哦,全角还是半角的*/

     printf(“please input three numbers:”);

     scanf(“%f,%f,%f”,&x,&y,&z);

     m=max(x,y,z);   n=min(x,y,z);  h=sum(m,n);

     printf(“the sum of max and min is:%f\n”,h);

     

  7. 幻海之涛 说:

    以下是我改的,改了一些东西(按我自己的习惯改的),

    可以运行,你想要的效果也达到了。

    但是个人建议,很繁琐,有其他的算法能简便

    #include <stdio.h>

    float max(float x,float y,float z);

    float min(float x,float y,float z);

    float sum(float m,float n);

    int main(void)

    {
     float x,y,z;
     float m,n,h;
     
     printf(“please input three numbers: “);
     scanf(“%f,%f,%f”, &x, &y, &z);
     
     m=max(x,y,z);
     n=min(x,y,z);
     h=sum(m,n);
     printf(“the sum of max and min is: %f\n”,h);
     
     system(“pause”);
    }

    float max(float x,float y,float z)
    {
      float m;
      if(x>y)
       m=x;
      else
       m=y;
      if(z>m)
       m=z;
      return m;

    }

     float min(float x,float y,float z)

    {
      float n;
      if(x<y)
       n=x;
      else
       n=y;
      if(z<n)
       n=z;
      return n;

    }

     float sum(float m,float n)

    {
      float h;
     
      h=m+n;

      return h;

    }

  8. 幻海之涛 说:

    真不好意思,一人占了4楼,那就再让我占一楼好了~~

  9. 独孤傲天 说:

    在编一个程序之前你先的明白你要干什么,在说怎么干,而且在问的时候你的具体说一个在调试时出了什么问题,让人们对你的问题有个了解,你说谁一天有那么多工夫给人看那些程序啊?

  10. 幻海之涛 说:

    用其他算法写的,应该可以达到同一效果吧

    #include<stdio.h>

    int main(void)
    {
     float max, min, sum;
     float x, y, z;

     printf(“Please input three numbers: “);

     scanf(“%f %f %f”, &x, &y, &z);

     max = (max = x > y? x: y) > z? max: z;

     min = (min = x < y? x: y) < z? min: z;

     printf(“Max is %.3f. Min is %.3f.\n”, max, min);

     printf(“The sum is %.3f”, max + min);

     system(“pause”);
     return 0;
    }

  11. li2454015 说:

    有這麼繁瑣麼?應該狠簡單的吧?

  12. chliju123 说:

    我看出两点:

    1,就是那个scanf函数最好写成(“%f%f%f”,&x,&y,&z);

    2,就是那个sum函数没有返回值在其最后应该加一句return h;

    其实第一个问题只要你输入时在各项之间加一个逗号的话,就不会出现错误,而第二个必须改,否则就没与返回值了!

留下一个回复