黑马程序员技术交流社区

标题: 关于基础测试题 [打印本页]

作者: geng    时间: 2014-12-26 20:37
标题: 关于基础测试题
我是不是写的有点麻烦了 直接把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;
}


作者: geng    时间: 2014-12-26 20:38
还有有关注释这么写可以么,纯小白,自己看视频中,求帮助啊
作者: Jeason_1007    时间: 2014-12-26 20:52
已知中不是告诉你了第一个人的年龄为10 吗?为什么你要接收输入的年龄了 哪一段代码完全可以省略直接用一个循环就可以
作者: 若何    时间: 2014-12-26 21:25
没必要定义age 和no 吧?题目已经告知第一个人10岁,以后每个人逐步+3,问第八个人多少岁。直接循环不就行了
作者: 若何    时间: 2014-12-26 21:29
  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. }
复制代码

作者: geng    时间: 2014-12-26 22:04
若何 发表于 2014-12-26 21:29

哦了 谢了
作者: romeo1990    时间: 2014-12-26 22:09
好复杂- -刚开始看视频的路过
作者: shicuf    时间: 2014-12-26 22:48
int count = 8;
return  age = 10 + pow(3, count - 1);
作者: wx_hg1q2t6v    时间: 2014-12-26 22:50
shicuf 发表于 2014-12-26 22:48
int count = 8;
return  age = 10 + pow(3, count - 1);

大神我又看见你了
作者: shicuf    时间: 2014-12-26 22:51
wx_hg1q2t6v 发表于 2014-12-26 22:50
大神我又看见你了

别吵吵,哈哈
作者: 依然卟懂    时间: 2014-12-27 00:04
感觉好牛的样子,新人求罩
作者: geng    时间: 2014-12-27 12:34
shicuf 发表于 2014-12-26 22:48
int count = 8;
return  age = 10 + pow(3, count - 1);

好厉害, 大神啊
作者: zhuohong_xiao    时间: 2014-12-27 13:34
两种方法,一个for循环,一个递归。
这个题目太简单了。
作者: 我的速度    时间: 2014-12-27 16:35
来顶顶。学习了。
作者: 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. }
复制代码



递归,这是我以前写的,再看看递归的用法
作者: geng    时间: 2014-12-27 22:26
chasedream 发表于 2014-12-27 16:42
递归,这是我以前写的,再看看递归的用法

谢谢!!!!!!!!!!!!!!!!
作者: xuwenxindeai    时间: 2014-12-28 00:14
shicuf 发表于 2014-12-26 22:51
别吵吵,哈哈

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


:lol知道我谁不
作者: zhaozigeng    时间: 2014-12-28 10:29
这道题考的就是for循环.仔细想一下for循环吧.

作者: HHE_johnson    时间: 2015-12-24 16:13
我个人觉得这道题考的是递归




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2