请选择 进入手机版 | 继续访问电脑版

QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 7557|回复: 1

数据结构之字符串学习感悟

[复制链接]
字体大小: 正常 放大
慢跑20 实名认证       

60

主题

8

听众

3684

积分

  • TA的每日心情
    开心
    2017-2-22 14:21
  • 签到天数: 271 天

    [LV.8]以坛为家I

    群组2014年美赛冲刺培训

    群组物联网工程师考试

    群组2013年电工杯B题讨论群

    群组物联网工程师培训

    群组2013电工杯A题讨论群组

    发表于 2014-2-25 22:51 |显示全部楼层
    |招呼Ta 关注Ta
    数据结构第一章第一节讲了基础知识,涉及到一个小程序:输入学生学号、姓名,并输出。
    - X0 L4 O' D5 j/ d. i初步代码如下:
    ) u4 N/ d. s5 B% t6 I% ~. P#include<stdio.h>
    ! w4 x9 f7 x8 b& H#define n 2" ~1 M4 s3 C7 v9 y
    struct Student{
    . |* h" L+ e- m1 t  F0 F        char name[3];
    $ K  v3 |  V" p: H( k        int num;
    * a9 W. k9 S  p# V+ b}stu[2];
    $ }) G3 {& s: f" _; D9 w/ M& p. }4 ]0 a( t
    int main(){
    / m/ `; {# T$ `5 f2 |        int i;
    # M, d& U$ C8 y  W# e- \) ~& J        for(i=0;i<n;i++)
    1 p9 F  Z% G9 W+ |7 J& X* ?% W8 f( p        {gets(stu[i].name);3 x8 U* P% n* R" I' A- V3 s& F
            scanf("%d",&stu[i].num);9 G* H/ x  n- _$ L+ C9 n" {
            }
    , B* @! x) x1 n( N/ a" _4 h        for(i=0;i<n;i++)9 M- R9 ?" m1 t, U
            {puts(stu[i].name);% s. f$ S) r# V2 D5 @5 w$ Z: f
            printf("%d\n",stu[i].num);3 n* W& T$ Z% |0 v# Y$ M2 B
            }
    4 z* |: v/ t3 L4 [$ F        return 0;# \& |4 \; B# F' J+ x. {
    }
    7 E0 j5 \! o$ z/ F比如我想输入第一个学生的姓名:s1,学号:10、7 C7 O/ B5 d4 _. X7 Q1 K. G0 X4 ?
    然后输入第二个学生的姓名:s2,学号:20.$ X. r4 {* {- j7 @
    但是还没有输完,只输入了s2,就显示除了结果,而且后边的结果不正确。) G8 Y; S) n* P
    这是为什么呢?. `/ R' L& l% q- r
    仔细想一想。5 n  k9 E/ z6 G1 c0 K5 V, [
    最终才发发现了关键的问题:1 l' b. Q! a& l1 r2 m
    在输完第一个学生的学号之后会敲一个回车,计算机把那个回车当成第二个字符串存进第二个字符数组里面了。. e; X9 }" {) {% _3 p$ F/ V$ z
    getcher就是用来存那个多余的回车的。
    ; u0 m4 T/ L" h9 @) I5 W原来,只需要在第一个循环,scanf之后加入getchar();就可以解决了问题。
    ; ]5 T. {: q' W9 W
    + |. @4 x) K8 y* F2 z- u, F6 d7 p: x" S! g' N
    7 Y& \0 u" c+ w: o1 A% u9 ?

    ! ?4 `) ~1 s  g' s
    zan
    sdccumcm 实名认证      会长俱乐部认证 

    59

    主题

    165

    听众

    5484

    积分

    升级  9.68%

  • TA的每日心情
    开心
    2015-9-28 12:07
  • 签到天数: 832 天

    [LV.10]以坛为家III

    2012挑战赛参赛者

    邮箱绑定达人 发帖功臣 新人进步奖 风雨历程奖 最具活力勋章

    群组MCM优秀论文解析专题

    群组2012第二期MCM/ICM优秀

    群组科学狂想曲

    群组第二届数模基础实训

    群组学术交流B

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2024-3-29 22:14 , Processed in 0.346423 second(s), 55 queries .

    回顶部