鱼C论坛

 找回密码
 立即注册
查看: 3281|回复: 2

c语言问题

[复制链接]
发表于 2013-7-23 22:57:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
#define max 10
struct user
{
        int num;
        char name[20];
        char telephone[8];
};
void change(struct user u[])
{
        int i;
        for ( i = 0; i < 10; i++ )
        {
                if ( ( u[i].telephone[0] == '2' ) && ( u[i].telephone[1] == '5' ) && ( u[i].telephone[2] == '9' ) )
                                        u[i].telephone[2] = '5';
        }
}
main()
{
        struct user user1[10];
        int i;
        for ( i = 0; i < 10; i++ )
        {
                printf("input num:");
                scanf("%d", &user1[i].num);
                printf("input name:");
                scanf("%c", &user1[i].name);
                printf("input telephone:");
                scanf("%c", &user1[i].telephone);
        }
        change(user1);
        for ( i = 0; i < 10; i++ )
                printf("num:%d, name:%s, telephone:%s\n",
                            user1[i].num, user1[i].name, user1[i].telephone);
}
运行结果却是这样的
QQ截图20130723224207.png

输入参数以后输出的提示信息不对啊   这是什么情况  求高手讲解

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-23 23:33:48 | 显示全部楼层
本帖最后由 Potato丶 于 2013-7-23 23:40 编辑

printf("input name:");
scanf("%c", &user1.name);
printf("input telephone:");
scanf("%c", &user1.telephone);
应该为%s.
你输入了ych。一下读入三个字符。当然会跳过一些输入。(回车也算)
改为%s 不会有这个问题。回车过滤掉了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-24 11:58:30 | 显示全部楼层
明白了  谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-18 05:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表