C 我必须创建这个学生数据程序。有一个警告我就是想不出来

C 我必须创建这个学生数据程序。有一个警告我就是想不出来,c,C,所以我写了这段代码并通过cygwin终端运行它!我清除了所有错误,但只留下最后一个警告,我无法修复 #include <stdio.h> int main (int argc, char *argv[]) { int phoneNumber; char firstName[11]; char lastName[11]; char eMail[20]; printf("Please enter the u

所以我写了这段代码并通过cygwin终端运行它!我清除了所有错误,但只留下最后一个警告,我无法修复

#include <stdio.h>
int main (int argc, char *argv[]) {
        int phoneNumber;
        char firstName[11];
        char lastName[11];
        char eMail[20];

        printf("Please enter the user's first name:");
        scanf("%s", firstName);
        printf("Please enter the user's last name:");
        scanf("%s", lastName);
        printf("Please enter the user's phone number:");
        scanf("%i", phoneNumber);
        printf("Please enter the user's e-mail:");
        scanf("%s", eMail);
        printf("firstName, lastName, phoneNumber, eMail: %s, %s, %i, %s", firstName, lastName,
phoneNumber, eMail);
}
#包括
int main(int argc,char*argv[]){
整数音素;
char firstName[11];
char lastName[11];
char电子邮件[20];
printf(“请输入用户的名字:”);
scanf(“%s”,名字);
printf(“请输入用户的姓氏:”);
scanf(“%s”,lastName);
printf(“请输入用户的电话号码:”);
scanf(“%i”,电话号码);
printf(“请输入用户的电子邮件:”);
scanf(“%s”,电子邮件);
printf(“firstName,lastName,phoneNumber,eMail:%s,%s,%i,%s”,firstName,lastName,
电话号码、电子邮件);
}
这是密码。cygwin错误告诉我:

警告:格式指定类型“int”,但参数的类型为“int*”[-Wformat]


这是指%i所在的最后一行printf

Try
scanf(“%d”和电话号码)
并将
%d
用于
printf
。在C及其导数中,函数都是通过值传递的。为了让函数修改变量,需要传入该变量的地址,而不是其值。这就是为什么要在
前面加前缀,以便在
scanf
函数中获得
phoneNumber
的地址。但是,对于
scanf
参数,您只使用
&
,而不是在本地声明或使用变量。

这不是您的答案,但您可以添加一点关于符号AND的用途的信息,为了让OP和其他可怜的灵魂第一次遇到C和stdio。@Lewis在最后的打印F中,你不需要在电话号码前加上符号和。你截图中的第一个警告其实很奇怪。@Arongolden是的。我没有加符号。这个密码伤了我的头。我不知道怎么了。正如你所看到的,我是一个初学者。@Lewis你确定你发布的代码与你正在编译的代码相同吗?编译时,错误消息似乎表明变量
phoneNumber
是数组或其他地址。@pjs好的,我在顶部找到了它,上面写着int phoneNumber;我有电话号码[10];所以我只是编辑代码,没有在这里粘贴正确的代码。一切都很抱歉!