GumpYu 发表于 2019-3-8 00:25:05

新手的每日一问

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

int main()
{
      char str1[] = "love";
      char str2[] = "FishC";

      if (strlen(str1) - strlen(str2) < 0)
      {
                printf("字符串"%s"比字符串"%s"短!\n", str1, str2);
      }
      else
      {
                printf("字符串"%s"比字符串"%s"长!\n", str1, str2);
      }

      return 0;
}


这道题小甲鱼说会得到相反的结果,但是我用dev c++得到的是正确的结果啊,我现在人都有点懵逼了{:10_257:}

GumpYu 发表于 2019-3-8 00:25:43

不知道为什么发不了图片。。。

ba21 发表于 2019-3-8 00:33:59

什么意思?

GumpYu 发表于 2019-3-8 06:54:10

ba21 发表于 2019-3-8 00:33
什么意思?

如果按照题目中的意思(见课后作业S1E19),我会得到字符串str1比字符串str2长这个结果,但是我自己尝试得到的是字符串str1比字符串str2短

暗pluto 发表于 2019-3-8 12:08:59

你printf错了
应该是 printf("字符串%s比字符串%s短!\n", str1, str2);
printf("字符串%s比字符串%s长!\n", str1, str2);
吧,原代码你编译通得过吗

GumpYu 发表于 2019-3-8 22:32:52

暗pluto 发表于 2019-3-8 12:08
你printf错了
应该是 printf("字符串%s比字符串%s短!\n", str1, str2);
printf("字符串%s比字符串%s长! ...

printf("字符串"%s"比字符串"%s"短!\n", str1, str2);源码是在“%s”编译报错了,但是他题目的含义不应该是love比Fishc长嘛

暗pluto 发表于 2019-3-8 23:20:20

GumpYu 发表于 2019-3-8 22:32
源码是在“%s”编译报错了,但是他题目的含义不应该是love比Fishc长嘛

你改过来就对了啊
错误改正后,编译结果就是love比fishc长

GumpYu 发表于 2019-3-9 23:00:16

暗pluto 发表于 2019-3-8 23:20
你改过来就对了啊
错误改正后,编译结果就是love比fishc长

但是我得到的结果是love比fishc短{:10_269:}

暗pluto 发表于 2019-3-10 01:40:04

GumpYu 发表于 2019-3-9 23:00
但是我得到的结果是love比fishc短

你确定?你改完的代码是怎么样的,如果还是短的话,你可以输出一下减完后的值,或者单步调试一下

GumpYu 发表于 2019-3-10 10:59:41

暗pluto 发表于 2019-3-10 01:40
你确定?你改完的代码是怎么样的,如果还是短的话,你可以输出一下减完后的值,或者单步调试一下

真滴怪了,我代码没变这次输出的结果又正确了{:10_249:},上次的编译结果还截了图的

暗pluto 发表于 2019-3-10 11:11:20

GumpYu 发表于 2019-3-10 10:59
真滴怪了,我代码没变这次输出的结果又正确了,上次的编译结果还截了图的

那可能是编译器偶尔的抽风吧,{:10_245:}
页: [1]
查看完整版本: 新手的每日一问