使用scanf在循环中使用多个变量

时间:2014-02-07 10:09:47

标签: objective-c c

我是编程的真正初学者。我的意思是真正的初学者。我试图创建的代码是针对这个问题:编写一个程序,提示用户10年,然后计算并输出这些年龄的平均值。 您的程序中不应该有十个scanf语句。相反,scanf语句应该在循环中。

我设法让循环运行并询问语句,但我不知道如何让我的变量添加最后输入的所有数字。相反,我只是删除变量中的旧数字并存储新数字,所以当我到达结尾时,它表示总数是输入到输入中的最后一个数字。

@autoreleasepool 
{
    int counter;
    int ages;

    for (counter = 0; counter < 11; counter = counter +1) 
    {
        NSLog(@"Type your age:");
        scanf("%i", &ages);
    }
    NSLog(@" Average age is: %i", ages);
}
return 0;

它就是。

3 个答案:

答案 0 :(得分:0)

请参阅代码中的注释作为解释。

@autoreleasepool {

    int counter;

    int ages;
   // add result variable
    int result = 0;

    for (counter = 0; counter < 11; counter = counter +1) {

        NSLog(@"Type your age:");

        scanf("%i", &ages);
        // Add the age to the result
        result += ages;
    }
    // Calculate average
    NSLog(@" Average age is: %f", result/10);

}

答案 1 :(得分:0)

你可以在一个循环中总结它们并取平均值

int counter;
int ages;
int sum = 0;
for (counter = 0; counter < 10; counter = counter + 1) {
    NSLog(@"Type your age:");
    scanf("%i", &ages);
    sum += ages;
}
sum /= 10
NSLog(@" Average age is: %i", sum);

答案 2 :(得分:0)

在计算平均值之前,您需要存储年龄总和:

int total;

此外,循环从0升级到< 10,而不是< 11(这是11岁)。

因此:

#define NUM_AGES 10

int main(int argc, const char **argv) {
    @autoreleasepool {
        int total = 0;
        for (int counter = 0; counter < NUM_AGES; counter++) {
            int age;
            NSLog(@"Type your age:");
            scanf("%i", &age);
            total += age;
        }

        NSLog(@" Average age is: %i", total / NUM_AGES);

    }
    return 0;
}