kljoij 发表于 2016-12-1 21:53:19

新人求教c语言

#include <stdio.h>

#define MAX 1024

int main()
{
      char str1;
      char str2;
      int i = 0;
      unsigned int n;

      printf("请输入第一个字符串:");
      while ((str1 = getchar()) != '\n')
                ;

      printf("请输入第二个字符串:");
      i = 0;
      while ((str2 = getchar()) != '\n')
                ;

      printf("请输入比较的字符数:");
      scanf("%u", &n);

      for (i = 0; i < n; i++)
      {
                if (str1 - str2)
                {
                        i++;
                        break;
                }
      }

      printf("比较的结果是:%d\n", str1 - str2);

      return 0;
}
if (str1 - str2)
                {
                        i++;
                        break;
                }这里为什么是这样;前面的为什么不要scanf

小甲鱼 发表于 2016-12-2 13:04:16

不大清楚楼主的问题?请尽可能详细清楚的描述问题。

kljoij 发表于 2016-12-2 13:57:00

小甲鱼 发表于 2016-12-2 13:04
不大清楚楼主的问题?请尽可能详细清楚的描述问题。

if那里,那样写是什么意思

小甲鱼 发表于 2016-12-2 17:05:02

kljoij 发表于 2016-12-2 13:57
if那里,那样写是什么意思

if ((str1 - str2) != 0)
{
      i++;
      break;
}
如果 str1 和 str2 存在不同元素,则相减后结果不为 0,退出循环。

kljoij 发表于 2016-12-2 23:53:50

小甲鱼 发表于 2016-12-2 17:05
如果 str1 和 str2 存在不同元素,则相减后结果不为 0,退出循环。

还有就是为什么在头两个printf后面不要scanf

小甲鱼 发表于 2016-12-3 00:20:13

kljoij 发表于 2016-12-2 23:53
还有就是为什么在头两个printf后面不要scanf

因为已经用 getchar() 函数接收输入了哦~

这位童鞋,前边没有认真听讲的感觉~ {:10_249:}
页: [1]
查看完整版本: 新人求教c语言