C函数为';行不通

C函数为';行不通,c,C,我正在编写一个函数Calculate\u age\u when\u Trump\u elected(int year\u born),返回一个结果,并为age\u when\u Trump\u elected赋值 结果应该是特朗普当选的年份减去特朗普出生的年份,但目前它只显示用户输入的输入 “terminal\u user\u input.c”只是用于函数read\u string和read\u integer的文件 #include <stdio.h> #include <c

我正在编写一个函数
Calculate\u age\u when\u Trump\u elected(int year\u born)
,返回一个结果,并为
age\u when\u Trump\u elected
赋值

结果应该是
特朗普当选的年份
减去特朗普出生的年份,但目前它只显示用户输入的输入

“terminal\u user\u input.c”只是用于函数
read\u string
read\u integer
的文件

#include <stdio.h>
#include <ctype.h>
#include <stdbool.h>
#include "terminal_user_input.c"

#define YEAR_TRUMP_ELECTED 2016


// A very basic  read boolean function

bool read_boolean(const char* prompt)
{
    my_string answer;
    bool result;

    answer = read_string(prompt);
    answer.str[0] = (char) tolower(answer.str[0]);

    switch (answer.str[0]) {
        case 'n':
            result = false;
            break;
        case 'x':
            result = false;
            break;
        default:
            result = true;
    }

    return result;
}

int Calculate_age_when_Trump_elected(int year_born)
{
    int result;
    result = YEAR_TRUMP_ELECTED - year_born;

    return 0;
}

int main()
{
    my_string name;
    int age_when_Trump_elected;
    int year_born;
    bool brexiter;

    name = read_string("What is your name? ");

    year_born = read_integer("When you were born? ");
    age_when_Trump_elected = Calculate_age_when_Trump_elected(year_born);
    printf("You were %d years old when Trump was elected\n",year_born);

    brexiter = read_boolean("Are u a Brexit support? ");

    if (brexiter == true)
    {
       printf("%s is a Brexit supporter\n",name.str);
    }
    else
    {
       printf("%s isn't a Brexit supporter\n",name.str);
    }

    read_string("Type 'exit' to continue ");

    return 0;
}
#包括
#包括
#包括
#包括“终端用户输入.c”
#定义2016年特朗普当选的年份
//一个非常基本的读取布尔函数
布尔读取布尔值(常量字符*提示)
{
我的答案;
布尔结果;
应答=读取字符串(提示);
answer.str[0]=(char)tolower(answer.str[0]);
开关(answer.str[0]){
案例“n”:
结果=假;
打破
案例“x”:
结果=假;
打破
违约:
结果=真;
}
返回结果;
}
int计算特朗普当选时的年龄(int年出生)
{
int结果;
结果=特朗普当选年份-出生年份;
返回0;
}
int main()
{
我的字符串名称;
特朗普当选时的年龄;
出生年份;
布尔脱欧者;
name=读取字符串(“你叫什么名字?”);
年份出生=读整数(“你出生的时候?”);
特朗普当选时的年龄=计算特朗普当选时的年龄(出生年份);
printf(“特朗普当选时,你是%d岁”,出生年份);
脱欧者=读布尔值(“你是脱欧支持者吗?”);
如果(英国脱欧=真)
{
printf(“%s是脱欧支持者”,name.str);
}
其他的
{
printf(“%s不是脱欧支持者”,name.str);
}
读取字符串(“键入“退出”以继续”);
返回0;
}

查看
计算特朗普当选时的年龄
。它将始终返回
0
。您应该返回
结果
变量。

当特朗普当选(出生整数年)时,您的
整数计算年龄
返回0结束
而不是
返回结果。或者更好的方法是将计算转换为C宏,例如
#define Calculate_age_when_Trump_elected(int year_born)(year_Trump_elected-year_born)
。我已经重新格式化了代码以修复缩进。如果你的代码格式很好,你会得到更好的响应。它使阅读变得更容易,有时当代码更容易理解时,错误会变得更明显。您需要打印
特朗普当选时的年龄
,而不是
出生年份
。然后按照ergohack的评论,你应该可以走了。