C语言小程序

306关注627浏览

下面的代码使用if-else语句。请写一个C程序,使用switch-case语句,但执行相同的行为,如下面的代码...

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

    2044人对此回答表示赞同

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

    20人对此回答表示赞同

    你这个程序犯了两大问题;
    一:在输入数据时,%c就是一个字符一个字符的输入,你每输入一个字符都得按回车键,所以你这个程序运行会有问题,
    二;你输出时将数组转换成字符串输入,因为数组末尾系统会自动带一个\0你在转换字符串时就把这个\0的空间里面的内容输出了。。这个空间里面的当然是乱码:
    展开
    20
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Tim

    20人对此回答表示赞同

    int day;
    printf("please input a number for a day");
    scanf("%d",&day);
    switch(day)
    {
      case 1: printf("Sunday");break;
    展开
    20
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 疯人院门开了

    12人对此回答表示赞同

    首先在C,C#和C++中 任何变量在声明阶段是要初始化的,和JAVA不一样,没有默认值.系统会给变量中随机赋任何值,可能很大,也可能很小.而C中判断字符串结束你也知道是根据'\0'的位置,所以如果不初始化变量的话.就有可能在你输入完10个字符后并不是'\0'.还有可能是其他数字,出现一个双箭头符号你可以在ASCII码表中找到它的值.只是碰巧双箭头后面随机到的是'\0'罢了,下次有可能更长.

    另外 你这样写很不安
    展开
    12
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 安娜女王

    8人对此回答表示赞同

    lz把数组长度定为11就不会出现这个问题啦
    lz也说了啊,最后输出的是字符串啊,末尾要是‘\0’的啊
    最后的那个双箭头字符,应该是原先定义的10个元素的数组后一个内存里存储的垃圾值,每次运行 结果可能都不一样哦
    展开
    8
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Roman抽

    5人对此回答表示赞同

    char a[10]={0};
    数组要进行初期化,并且其只能输入9个字符,最后一个字符要作为结尾符'\0'。

    这样就没有问题了。
    展开
    5
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 情深深

    4人对此回答表示赞同

    int day;
    printf("Please input a number for a day: ");
    scanf("%d",&day);
    switch(day)
    {
        case 1:printf("Sunday&q
    展开
    4
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Sadie

    2人对此回答表示赞同

    以下是你代码的翻版:

    #include <stdio.h>
    int main(void){
        int day;
        printf("Please input a number for a day: ")
    展开
    2
    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
扫码咨询

扫码咨询套餐

回到顶部