静战者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日

悬赏问题

  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding
  • ¥15 Marscode IDE 如何预览新建的 HTML 文件