A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© geng 中级黑马   /  2014-12-26 20:37  /  2562 人查看  /  19 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我是不是写的有点麻烦了 直接把age 和no给赋值就可以了??? 求帮助
/*
9、 有八个人坐在一起,问第8个人多少岁?他说比第7个人大3岁。问第7个人多少岁?他说比第6个人大3岁。问第6个人多少岁?他说比第5个人大3岁。问第5个人多少岁?他说比第4个人大3岁,以此类推,最后问第1个人多少岁?他说是10岁。请问第8个人多大?(C语言)
*/

我是不是写的有点麻烦了 直接把age 和no给赋值就可以了??? 求帮助

#include <stdio.h>

int main()
{
    // 定义两个变量
    int age, no;

    // 提示用户输入第一个人的年龄
    printf("输入第一个人的年龄\n");

    // 接收用户输入的年龄
    scanf("%d", &age);

    // 提示用户输入人所在第几个位置
    printf("输入人所在的位置\n");

    // 接收用户输入的位置信息
    scanf("%d", &no);

    // 循环到人所在的位置
    for (int i = 1; i < no; i++)
    {
        // 每循环一次年龄加3岁
        age += 3;
    }
    // 输入人的年龄
    printf("%d\n", age);

    return 0;
}

19 个回复

正序浏览
我个人觉得这道题考的是递归
回复 使用道具 举报
这道题考的就是for循环.仔细想一下for循环吧.
回复 使用道具 举报

我就纳闷了,,,怎么哪都有你,,


:lol知道我谁不

点评

额,俺错了,哈哈  发表于 2014-12-28 00:42
回复 使用道具 举报
geng 中级黑马 2014-12-27 22:26:39
16#
chasedream 发表于 2014-12-27 16:42
递归,这是我以前写的,再看看递归的用法

谢谢!!!!!!!!!!!!!!!!
回复 使用道具 举报
  1. #include<stdio.h>
  2. int ages(int i);
  3. int main()
  4. {
  5.         int i;
  6.         printf("请输入1-8之间的一个整数\n");
  7.         scanf("%d",&i);

  8.         printf("第%d个人的年龄是%d\n",i,ages(i));
  9.         return 0;
  10. }
  11. int ages(int i)
  12. {
  13.        
  14.         if(i==1)
  15.                 return 10;

  16.                 return (ages(i-1)+3);
  17.        
  18.        
  19. }
复制代码



递归,这是我以前写的,再看看递归的用法
回复 使用道具 举报
来顶顶。学习了。
回复 使用道具 举报
两种方法,一个for循环,一个递归。
这个题目太简单了。
回复 使用道具 举报
geng 中级黑马 2014-12-27 12:34:53
12#
shicuf 发表于 2014-12-26 22:48
int count = 8;
return  age = 10 + pow(3, count - 1);

好厉害, 大神啊
回复 使用道具 举报
感觉好牛的样子,新人求罩
回复 使用道具 举报
shicuf 中级黑马 2014-12-26 22:51:57
10#

别吵吵,哈哈
回复 使用道具 举报
shicuf 发表于 2014-12-26 22:48
int count = 8;
return  age = 10 + pow(3, count - 1);

大神我又看见你了
回复 使用道具 举报
shicuf 中级黑马 2014-12-26 22:48:45
8#
int count = 8;
return  age = 10 + pow(3, count - 1);
回复 使用道具 举报
好复杂- -刚开始看视频的路过
回复 使用道具 举报
回复 使用道具 举报
  1. #include<stdio.h>

  2. int main()
  3. {
  4.         int age=10;
  5.         for(int i=0;i<8;i++)
  6.         {
  7.                 age + =3;
  8.         }
  9.         printf("第八个人的年龄为:%d",age);
  10.         return0;
  11. }
复制代码
回复 使用道具 举报
没必要定义age 和no 吧?题目已经告知第一个人10岁,以后每个人逐步+3,问第八个人多少岁。直接循环不就行了
回复 使用道具 举报
已知中不是告诉你了第一个人的年龄为10 吗?为什么你要接收输入的年龄了 哪一段代码完全可以省略直接用一个循环就可以
回复 使用道具 举报
还有有关注释这么写可以么,纯小白,自己看视频中,求帮助啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马