为了账号安全,请及时绑定邮箱和手机立即绑定

17行问题

#include<stdio.h>

int getAge(numPeople)

{

   int age;//定义年龄

   if(numPeople==1)

      

    age=10;


    else


    age=age+(numPeople-1)*2   

  return age; 


}

     int main()

{

    int fifthAge=getAge(5);

     printf("第五个人的年龄是%d岁",fifthAge);

    return 0;


}


17行 写成 age=age+(numPeople-1)*2;为什么不可以    官方代码age=getAge(numPeople-1)+2;    这个的话numPeople=5, getAge(5)他怎么算出来的等于多少,

正在回答

2 回答

第一,int getAge(int numPeople),你少了int。

第二,你少了;

age = age + (numPeople - 1) * 2;

return age;

第三,结果并不对。

第四,你没有采用递归。

0 回复 有任何疑惑可以回复我~
#1

慕九州03159 提问者

非常感谢!
2017-09-25 回复 有任何疑惑可以回复我~

#include<stdio.h>

int getAge(int numPeople)

{

int age=10;//定义年龄

//if (numPeople == 1)


// age = 10;


//else

age = age + (numPeople - 1) * 2;

return age;


}

int main()

{

int fifthAge = getAge(5);

printf("第五个人的年龄是%d岁", fifthAge);

return 0;


}

这样改过的代码,虽然没有采用递归,也是正确的。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926262    人
  • 解答问题       20798    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程
意见反馈 帮助中心 APP下载
官方微信