木子木子不死心 发表于 2022-8-3 03:32:52

S1E20课后习题最后一题

本帖最后由 木子木子不死心 于 2022-8-3 03:34 编辑

这里面ch是int型,为什么可以slogan = ch出来又成了字母

#include <stdio.h>
#include <string.h>

#define NUM 5

int main()
{
      char slogan;
      int i, j, ch, min, max, temp;

      for (i = 0; i < NUM; i++)
      {
                printf("请输入%d句话:", i+1);
                for (j = 0; (ch = getchar()) != '\n'; j++)
                {
                        slogan = ch;
                }
                slogan = '\0';
      }

      min = 0;
      max = min;

      printf("你输入了下边%d句话:\n", NUM);

      // 打印每句口号,同时比较长度
      for (i = 0; i < NUM; i++)
      {
                printf("%s\n", slogan);
                temp = strlen(slogan);
                min = temp < strlen(slogan) ? i : min;
                max = temp > strlen(slogan) ? i : max;
      }

      printf("其中最长的是:%s\n", slogan);
      printf("其中最短的是:%s\n", slogan);

      return 0;
}

liuzhengyuan 发表于 2022-8-3 03:37:54

ch 储存的应该是 ASCII 码

wp231957 发表于 2022-8-3 04:35:44

单字符就是int

木子木子不死心 发表于 2022-8-3 07:12:06

liuzhengyuan 发表于 2022-8-3 03:37
ch 储存的应该是 ASCII 码

那这种情况,是不是取决于最后的格式化输出,用%s出来就是字符,用%d出来就是整型了吗

liuzhengyuan 发表于 2022-8-3 07:13:13

木子木子不死心 发表于 2022-8-3 07:12
那这种情况,是不是取决于最后的格式化输出,用%s出来就是字符,用%d出来就是整型了吗

你不信 %d 试试看,绝对是数字

木子木子不死心 发表于 2022-8-3 07:13:47

wp231957 发表于 2022-8-3 04:35
单字符就是int

那这里如果开始的时候输入 char ch,是不是也可以

wp231957 发表于 2022-8-3 08:06:48

木子木子不死心 发表于 2022-8-3 07:13
那这里如果开始的时候输入 char ch,是不是也可以

木子木子不死心 发表于 2022-8-3 08:44:19

感谢感谢!!!
页: [1]
查看完整版本: S1E20课后习题最后一题