| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1268 人关注过本帖
标题:求指教貌似循环中的 scanf 无效
只看楼主 加入收藏
q987456963q
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-11-1
结帖率:0
收藏
已结贴  问题点数:10 回复次数:16 
求指教貌似循环中的 scanf 无效
#include<stdio.h>
#include<string.h>
struct student
{
    char Num[10];
    char Name[15];
    int type;
    int total;
};
int main()
{
    struct student stud1[100];
    int i,n;
    int x=1;
    char k[10];
    printf("input how many students you need to input:");
    scanf("%d",&n);
    printf("input number\tname\tstudenttype(major 1. in science 2.in arts)\ttotal:\n");
    for(i=0;i<n;i++)
    {
        scanf("%s\t",&stud1[i].Num);
        scanf("%s\t",&stud1[i].Name);
        scanf("%d\t",&stud1[i].type);
        scanf("%d\t",&stud1[i].total);
    }
    printf("\n");
    if(x==1)
    {
       printf("input the number you search:");
       scanf("%s",&k);
       printf("\n");
       for(i=0;i<n;i++)
       {
          if(strcmp(stud1[i].Num,k)==0)
          {
             printf("%s\t",stud1[i].Num);
             printf("%s\t",stud1[i].Name);
             printf("type %d\t\t",stud1[i].type);
             printf("%d",stud1[i].total);
             printf("\n");
          }
       }
       printf("input 1 to input again or 2 to out:");
       scanf("%d",&x);
       printf("\n");
    }
    return 0;
}
搜索更多相关主题的帖子: include science number 
2014-05-08 21:32
top398
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:427
专家分:857
注 册:2014-5-2
收藏
得分:2 
这是因为, Num 本身是一个字符数组,也就是说,它本身就是一个地址。Name也是一样的情况。


[ 本帖最后由 top398 于 2014-5-8 21:43 编辑 ]
2014-05-08 21:42
q987456963q
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-11-1
收藏
得分:0 
我想问的是if(x==1)中的scanf("%s",&k);和scanf("%d",&x);为什么执行时直接跳过


2014-05-08 21:45
top398
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:427
专家分:857
注 册:2014-5-2
收藏
得分:0 
k 也是个字符数组好吧?你先把已发现的这些错误改过来,再继续调试吧。
2014-05-08 21:51
top398
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:427
专家分:857
注 册:2014-5-2
收藏
得分:0 
说实话,这样的程序是有些危险的。
2014-05-08 21:53
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:2 
写代码能一点点写吗?写完一块验证好了,再写下一块?
你能先写个输入整数,再把整数打印出来的代码吗?

总有那身价贱的人给作业贴回复完整的代码
2014-05-08 21:55
top398
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:427
专家分:857
注 册:2014-5-2
收藏
得分:0 
以下是引用embed_xuel在2014-5-8 21:55:49的发言:

写代码能一点点写吗?写完一块验证好了,再写下一块?
你能先写个输入整数,再把整数打印出来的代码吗?
一 main 到底也是个通病啊。
2014-05-08 22:14
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:2 
去掉scanf()中的换区符
        scanf("%s",stud1[i].Num);
        scanf("%s",stud1[i].Name);
        scanf("%d",&stud1[i].type);
        scanf("%d",&stud1[i].total);
2014-05-09 06:30
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:0 
scanf("%d",&n);
后面加一个getchar();消化输入产生的回车。
2014-05-09 06:35
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 

总有那身价贱的人给作业贴回复完整的代码
2014-05-09 07:07
快速回复:求指教貌似循环中的 scanf 无效
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024102 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved