fengshan5577 发表于 2020-4-7 16:23:53

课后题

指针和数组的课后题的第三题的进阶代码,
不管是代码复制粘贴到Dev-C++还是VM自己编写一样出现错误。

墨羽岚 发表于 2020-4-7 16:25:27

投错板块了

yexing 发表于 2020-4-7 20:15:07

什么错误?代码?

fengshan5577 发表于 2020-4-8 07:56:18

基本就是代码都是照着模板编下来,另一个直接复制粘贴代码然后执行测试的结果却不正确。

fengshan5577 发表于 2020-4-8 07:57:14

我很郁闷{:10_266:}

fengshan5577 发表于 2020-4-8 08:22:14

#include <stdio.h>

#define MAX 1024

int main()
{
      char str1;
      char str2;

      char *target1 = str1;
      char *target2 = str2;

      char ch;
      int index = 1, n;

      printf("请输入第一个字符串:");
      fgets(str1, MAX, stdin);

      printf("请输入第二个字符串:");
      fgets(str2, MAX, stdin);

      printf("请输入需要对比的字符个数:");
      scanf("%d", &n);

      while (n && *target1 != '\0' && *target2 != '\0')
      {
                ch = *target1;
                if (ch < 0)
                {
                        if (*target1++ != *target2++ || *target1++ != *target2++)
                        {
                              break;
                        }
                }
                if (*target1++ != *target2++)
                {
                     break;
                }
                index++;
                n--;
      }

      if ((n == 0) || (*target1 == '\0' && *target2 == '\0'))
      {
                printf("两个字符串的前 %d 个字符完全相同!\n", index);
      }
      else
      {
                printf("两个字符串不完全相同,第 %d 个字符出现不同!\n", index);
      }

      return 0;
}

GGF 发表于 2020-4-8 10:14:49

用英文测试

内裤外穿很好看 发表于 2020-4-8 11:01:39

版主
if (ch < 0)
                {
                        if (*target1++ != *target2++ || *target1++ != *target2++)
                        {
                              break;
                        }
                }
这段啥意思啊?

内裤外穿很好看 发表于 2020-4-8 11:03:30

index为什么执行之后没有+1?我也好好奇啊!

GGF 发表于 2020-4-8 11:06:59

内裤外穿很好看 发表于 2020-4-8 11:01
版主
if (ch < 0)
                {


char类型表示字符时是不会为负数的
这一段并不会执行

fengshan5577 发表于 2020-4-9 07:56:17

那不就表示C课后作业的代码真的有问题
页: [1]
查看完整版本: 课后题