C编程,For循环获取每个数字而不使用Array

时间:2015-03-22 04:11:20

标签: c

编写一个函数以从一个用户获得年龄(用户的输入以BOLD显示) 这是一个样本

有多少人: 3

输入人1的年龄: 12

输入人物2的年龄: 10

输入人3的年龄: 15

有3个人和年龄:12岁,10岁和15岁

我很困惑如何不使用数组来解决这类问题! PLZ帮助!!!

2 个答案:

答案 0 :(得分:2)

Lashane建议:

  

使用不带数组的递归。

这是一个很棒的主意。这是你如何去做的。

#include <stdio.h>
void print_rec(int index, int maxindex)
{
    int age;
    printf("Enter age of person %d",index);
    scanf("%d",&age);
    if (index == maxindex)
    {
        printf("The ages are %d ",age);
        return;
    }
    print_rec(index + 1, maxindex);
    printf(",%d",age);
}
int main()
{
    printf("Enter the number of people : ");
    int num;
    scanf("%d",&num);
    print_rec(1,num);
    return 0;
}

唯一的缺点是,它以反向顺序打印年龄。

答案 1 :(得分:1)

如果你需要存储它们你可以使用以下,这是嵌入式的做事方式。 :)

#include <stdio.h>

int main(void) {
  long ages = 0;
  int cnt = 0, i = 0, age = 0;

  printf("How many people do you have? (8 maximumimum):\t");
  scanf("%d", &cnt);

  for(i = 0; i < cnt; ++i) {
    printf("Enter the age of person: ");
    scanf("%d", &age);
    ages = ages | age;
    ages <<= 8;
  }

  ages >>= 8;
  for(; i;  --i) {
    printf("Age of person nubmer %d is %d\n", i, ages & 255);
    ages >>= 8;
  }
}

这可能对您没有帮助,但这是一种很酷的方式:)