起兮 发表于 2020-4-14 11:37:42

求助求助,小白看不懂代码了

下面这个代码for循环里有些看不懂,有木有大佬帮忙详细讲解一下


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

#define NUM 128

int main()
{
      int ch, i, j = 0, max = 0;
      int input_num = 0;
      int ascii = {0};
      char count = "";

      printf("请输入英文文本:");

      while ((ch = getchar()) != '\n')
      {
                ascii++; // 字符对应的ASCII码加1
                input_num++;
      }

      for (i = 0; i < NUM; i++)
      {
                if (ascii)
                {
                        count = i;
                        if (ascii > ascii)
                        {
                              max = i;
                        }
                }
      }

      printf("你总共输入了%d个字符,其中不同的字符个数有%d个。\n", input_num, strlen(count));
      printf("它们是:%s\n", count);
      printf("出现次数最多的字符是\'%c\',它总共出现了%d次。\n", max, ascii);

      return 0;
}

孤世星辰 发表于 2020-4-14 11:47:07

本帖最后由 孤世星辰 于 2020-4-14 11:48 编辑

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

#define NUM 128

int main()
{
      int ch, i, j = 0, max = 0;
      int input_num = 0;
      int ascii = {0};
      char count = "";

      printf("请输入英文文本:");

      while ((ch = getchar()) != '\n')//获得一个字符赋值给ch,如果不是回车键就执行循环
      {
                ascii++; // 字符对应的ASCII码加1   /*这是一个一维数组,里面每一个元素对应ascII表的一个值,你输入了那个字符,他会先转换成整型,比如a 是97,他就在数组【97】加一,说明你输入了一次,然后可以计算你输入了多少次*/
                input_num++;
      }

      for (i = 0; i < NUM; i++)
      {
                if (ascii)
                {
                        count = i;
                        if (ascii > ascii)//比较数组中最大的数,说明你这个字符输入最多
                        {
                              max = i;
                        }
                }
      }

      printf("你总共输入了%d个字符,其中不同的字符个数有%d个。\n", input_num, strlen(count));
      printf("它们是:%s\n", count);
      printf("出现次数最多的字符是\'%c\',它总共出现了%d次。\n", max, ascii);

      return 0;
}

起兮 发表于 2020-4-14 12:06:05

孤世星辰 发表于 2020-4-14 11:47


感谢大佬,那for循环初始i=0了,下面的if(ascii)是多少啊,以及count=i,是啥意思啊

孤世星辰 发表于 2020-4-14 12:26:57

起兮 发表于 2020-4-14 12:06
感谢大佬,那for循环初始i=0了,下面的if(ascii)是多少啊,以及count=i,是啥意思啊

不是0的就是1处理就是真,执行循环,count用来计算你有多少个不同的字符的,原理跟那个差不多

起兮 发表于 2020-4-14 12:31:48

孤世星辰 发表于 2020-4-14 12:26
不是0的就是1处理就是真,执行循环,count用来计算你有多少个不同的字符的,原理跟那个差不多

感谢大佬
页: [1]
查看完整版本: 求助求助,小白看不懂代码了