问答详情
源自:5-5 函数的返回值

为什么输出结果为“asd 的运算结果为不可以算出” 跪求原因!

#include <stdio.h>
int asd (int x,int y,int z)
{
 
int sum=x+y+z;
  return sum/3;
}
void asdf (int x,int y,int z)
{
printf("不可以算出");
 
}
int main ()
{
  int a,b,c;
a=10;
  b=20;
  c=30;
  printf("asd 的运算结果为",asd(a,b,c));


  asdf(a,b,c);
  return 0;
}


提问者:慕无忌8566216 2016-06-04 12:03

个回答

  • 莫莫莫0123
    2016-06-05 20:47:23

    //看下面程序及注释

    #include <stdio.h>
    int asd (int x,int y,int z)   //这边定义了一个asd的求和函数,但返回了其值的3分之1(‘/’相除取整)
    {
      
    int sum=x+y+z;
      return sum/3;
    }
    void asdf (int x,int y,int z)   //asdf只是达到一个打印“不可以算出的目的”
    {
    printf("不可以算出");
      
    }
    int main ()
    {
      int a,b,c;
    a=10;
      b=20;
      c=30;
      printf("asd 的运算结果为%d\n",asd(a,b,c));   //这里应加格式占位符%,才能达到对函数asd的正确调用,一般加                                                                            换行符/n可以优化输出效果


      asdf(a,b,c);   //因为调用了函数asdf。所以会打印“不可以算出”
      return 0;

  • 小仓老师
    2016-06-04 16:34:43

    倒数第五行代码改为: printf("asd 的运算结果为%d",asd(a,b,c));

    %d是输出格式,输出时会用asd(a,b,c)替换的,没有%d的话就会只输出字符串“asd的运算结果为”,
    再加上后面调用的asdf(a,b,c)方法必定输出的字符串“不可以算出”,就成了你看到的结果。

    修改后的输出结果为“asd的运算结果为20不可以算出”,

    这代码还需要改进啊

  • bkcarlos
    2016-06-04 15:20:01

      printf("asd 的运算结果为%d",asd(a,b,c));

  • bkcarlos
    2016-06-04 15:19:32

      printf("asd 的运算结果为",asd(a,b,c));

    这句话没有输出的对象