问问C的一段小程序

172关注413浏览

#include<stdio.h>
void main()
{char c,a[10],b[6];
c=getchar();
scanf("%s",a);
scanf("%s",b);
printf("c=%c,a=%s,b=%s",c,a,b);}

输入:
a回车
china回车
abcdef回车 /*刚好

展开全部
收起
4回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Gavin

    18人对此回答表示赞同

    问题点:
    1. b[6]的最后一位是'\0'结束标志。所以只能存5个字符。
    2. a[]和b[]最好初始化,memset(a,0,sizeof(a)); char c = '0';
    请保持良好的编成习惯。
    3. b[]数组越界导致a[]数组显示不正常,可以单步调试察看详细。这点基本赞同“leomars - 大魔法师 九级”。
    展开
    18
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Josiah3

    9人对此回答表示赞同

    用数组来存放数据,输入输出都要用数组的下标来标记.例如a[]的数组,输入是用循环a[i]来i是一个变量.这样就不会错了.
    展开
    9
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Jacob

    8人对此回答表示赞同

    我在C++里面试了一下,这断程序没有问题,如果有问题多半都是下标越界.建议定义的时候写成 b[256] ,就不会出问题.
    展开
    8
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 雨天

    3人对此回答表示赞同

    因为在内存中你的a[],b[]两个数组是连续存放的,当你的b[]刚刚越界以后,它的数组结束符会占到a[]的位置里面,因此a[]可以看做是提前结束了,如果是第结束符在a[0]上那么a[]就什么也输出不了了,如果你的b[]越界多一点,a[]还可能输出一点东西
    展开
    3
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部