我一直在研究这个问题并且无法解决这个问题。它应该做的是根据每个家庭成员的年龄确定汽车保险的费用。我需要做的是能够传递家庭成员年龄和可能数量的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
方法,但我怀疑这里存在很多问题。
答案 0 :(得分:3)
修复您的第一个scanf
调用(您需要传递指针):
scanf("%d", &o);
在后续scanf
次来电之间留出空格:
scanf(" %d", &age);
这会传递在上一次迭代中输入的换行符。