C语言printf函数无法输出是什么原因

要求是读取姓名和生日年份再输出,按下enter之后无法输出是什么原因,是写的代码的问题吗?

img

你是申请了三个char,但是读入了三个字符串
应该将char类型变量改为char数组(或int数组)
示例代码如下:

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a[20], b[20];
    scanf("%s", a);
    scanf("%s", b);
    printf("%s %s", a, b);
}

img

变量前面要加上&符号。

scanf(“%s”,firstname);
改为
scanf("%s",&firstname);

scanf里面每个变量名称前面加个&

char那里你定义的是字符,不是字符串,emm

代码修改如下:

char firstname[20],lastname[20],year_of_birth[20];
scanf("%s",firstname);
scanf("%s",lastname);
scanf("%s",year_of_birth);