汤姆叔叔的小屋 发表于 2020-4-9 09:42:49

c语言vc+++6.0


# include<stdio.h>

void main()
{
        char c ='k';
        int i = 1, j = 2, k = 3;
        float x = 3e + 5, y = 0.85;
        printf("%d, %d\n",'a' + 5 < c, -i - 2*j >= k + 1);
        printf("%d, %d\n",1<j<5,x-5, 25 <= x + y);
        printf("%d, %d\n",i + j + k == -2 * j, k == j == i + 5);
}


一个错误,错误显示如下
error C2021: expected exponent value, not ' '

qiuyouzhi 发表于 2020-4-9 09:44:27

我就想问那个3e+5的e是哪里来的?
而且,C语言也不支持这种写法啊?

sunrise085 发表于 2020-4-9 09:53:47

1、错误:float x = 3e + 5这里面的 e+5之间不应该有空格。
2、警告(有的编译器可能认为是错误)第二个printf,前面有两个格式化字符,但是后面却有三个参数。

sunrise085 发表于 2020-4-9 09:56:16

qiuyouzhi 发表于 2020-4-9 09:44
我就想问那个3e+5的e是哪里来的?
而且,C语言也不支持这种写法啊?

3e+5是科学记数法的写法,只是中间不能有空格

汤姆叔叔的小屋 发表于 2020-4-9 10:04:33

float x = 3e + 5, y = 0.85;\\e后面的+5要紧贴e,改为e+5

汤姆叔叔的小屋 发表于 2020-4-9 10:28:23

sunrise085 发表于 2020-4-9 09:53
1、错误:float x = 3e + 5这里面的 e+5之间不应该有空格。
2、警告(有的编译器可能认为是错误)第二个 ...

# include<stdio.h>

void main()
{
      char c ='k';
      int i = 1, j = 2, k = 3;
      float x = 3e+5, y = 0.85;
      printf("%d, %d\n",'a' + 5 < c, -i - 2*j >= k + 1);
      printf("%d, %d, %d\n",1<j<5,x-5, 25 <= x + y);
      printf("%d, %d\n",i + j + k == -2 * j, k == j == i + 5);
}

/*运行结果   为什么第二行最后一个值是奇怪值,而不是1
1, 0
1, 0, 1091719020
0, 0
Press any key to continue
*/

sunrise085 发表于 2020-4-9 11:05:42

汤姆叔叔的小屋 发表于 2020-4-9 10:28
# include

void main()


你把中间的%d改成%f试试?

汤姆叔叔的小屋 发表于 2020-4-9 12:37:41

sunrise085 发表于 2020-4-9 11:05
你把中间的%d改成%f试试?

# include<stdio.h>

void main()
{
      char c ='k';
      int i = 1, j = 2, k = 3;
      float x = 3e+5, y = 0.85;
      printf("%d, %d\n",'a' + 5 < c, -i - 2*j >= k + 1);
      printf("%d, %d, %f\n",1<j<5, x-5, 25 <= x + y);
      printf("%d, %d\n",i + j + k == -2 * j, k == j == i + 5);
}
/*运行结果(我的理解是25<=x+y即25<3e+5 + 0.85,25<300000.85成立,返回逻辑值1.000000)
1, 0
1, 0, 0.000000
0, 0
Press any key to continue
*/

sunrise085 发表于 2020-4-9 13:49:39

汤姆叔叔的小屋 发表于 2020-4-9 12:37
# include

void main()


。。。。。
中间的那个
x-5不是int类型,而是float类型。
页: [1]
查看完整版本: c语言vc+++6.0