程序在第一次扫描时停止工作

时间:2015-07-07 16:09:54

标签: c

我一直在研究这个问题并且无法解决这个问题。它应该做的是根据每个家庭成员的年龄确定汽车保险的费用。我需要做的是能够传递家庭成员年龄和可能数量的AgeAdd函数(以跟踪它是哪个成员),它将计算成本并将其打印出来。< / p>

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>

void AgeAdd(int);

int main()
{

int age, i, o, count;   
count = 1;
printf("Enter the number of family members: ");
scanf("%d", o);

for (i = 0; i < o; i++)
{

    printf("Enter the age for family member %d: ", count);

    scanf("%d", &age); \\program crashes here

    AgeAdd(age);

    count++;
}



return 0;


}

一旦我达到第一个scanf程序停止工作,我就会为什么而感到困惑。我可以在那里使用getchar吗?

void AgeAdd(int a)
{
int sum1, sum2, sum3;


if (a >= 16 && a <= 19)
{
    sum1 = 1000 + (1000 * 15 / 100);
    printf("The cost for the family member is %d \n", sum1);

}
if (a >= 20 && a <= 24)
{
    sum2 = 1000 + (1000 * 5 / 100);
    printf("The cost for the family member is %d \n", sum2);

}
if (a >= 25)
{
    sum3 = 1000 - (1000 * 5 / 100);
    printf("The cost for the family member is %d \n", sum3);
}


}

以下是AgeAdd方法,但我怀疑这里存在很多问题。

1 个答案:

答案 0 :(得分:3)

修复您的第一个scanf调用(您需要传递指针):

scanf("%d", &o);

在后续scanf次来电之间留出空格:

scanf(" %d", &age);

这会传递在上一次迭代中输入的换行符。