静战者828 2021-12-16 19:40 采纳率: 100%
浏览 38
已结题

C语言,提问一个关于结构体的问题

devc++

#include<stdio.h>
#define N 2
struct tele
{
    char name;
    int telenumber;
    char email;
};
struct tele tel[N];
int main()
{
    void print(struct tele tel[N]);
    int i;
    for(i=0;i<N;i++)
    {
        printf("\n请输入第%d个同学的通讯录:\n",i+1);
        printf("姓名:");scanf("%c",&tel[i].name);
        printf("电话号码:");scanf("%d",&tel[i].telenumber);
        printf("电子邮件地址:");scanf("%c",&tel[i].email);
    }
    printf("\n");
    print(tel);
}
void print(struct tele tel[N])
{
    int i;
    printf("\n姓名  电话号码  电子邮件地址\n");
    for(i=0;i<N;i++)
    {
        printf("%c %d %c",tel[i].name,tel[i].telenumber,tel[i].email);
        printf("\n");
    }
}


```题目是建立简单的同学通讯录,输入10个同学的通讯信息(通讯录信息包括姓名、电话号码、电子邮箱)并输出。
为了方便测试,把代码中的人数改少了,代码如下:

#include<stdio.h>
#define N 2
struct tele
{
    char name;
    int telenumber;
    char email;
};
struct tele tel[N];
int main()
{
    void print(struct tele tel[N]);
    int i;
    for(i=0;i<N;i++)
    {
        printf("\n请输入第%d个同学的通讯录:\n",i+1);
        printf("姓名:");scanf("%c",&tel[i].name);
        printf("电话号码:");scanf("%d",&tel[i].telenumber);
        printf("电子邮件地址:");scanf("%c",&tel[i].email);
    }
    printf("\n");
    print(tel);
}
void print(struct tele tel[N])
{
    int i;
    printf("\n姓名  电话号码  电子邮件地址\n");
    for(i=0;i<N;i++)
    {
        printf("%c %d %c",tel[i].name,tel[i].telenumber,tel[i].email);
        printf("\n");
    }
}



![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/682554456936172.png "#left")
输入到电子邮件部分(也就是一个字符)就会自动跳过,真的百思不得其解,求解答
另外,为什么scanf函数里面不加&(取地址运算符)就不行呢?我看到书本上的有些可以不加,不知道为什么


  • 写回答

3条回答 默认 最新

  • whizer 2021-12-16 19:53
    关注

    1)修改一下你的结构体,char只能输入一个字符,char数组可以是多个。
    2)百度一下scanf函数的用法。

    #define NAME_LEN  64
    #define EMAIL_LEN  64
    
    struct tele {
        char name[NAME_LEN];
        int telenumber;
        char email[EMAIL_LEN];
    };
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月29日
  • 已采纳回答 12月21日
  • 创建了问题 12月16日

悬赏问题

  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!