白牡丹秀色可餐 发表于 2019-8-18 23:49:56

e1s6

我快要疯了,,,,,,
这是小甲鱼的代码
#include <stdio.h>
#include <math.h>

int main()
{
      unsigned long long sum = 0;
      unsigned long long temp;
      unsigned long long weight;
      int i;

      for (i=0; i < 64; i++)
      {
                temp = pow(2, i);
                sum = sum + temp;
      }

      weight = sum / 25000;

      printf("舍罕王应该给予达依尔%llu粒麦子!\n", sum);
      printf("如果每25000粒麦子为1kg,那么应该给%llu公斤麦子!\n", weight);

      return 0;
}

这是我的代码
#include<stdio.h>
#include<math.h>

int main()
{
        unsigned long long int result = 2;
        int i;
        unsigned long long int re;
        re = 0;
        if (i=0; i < 64; i++);
        {
                result = pow(2, i);
                re = re + result;
        }
        re = result / 25000;
        printf("舍罕王需要付给达依尔%ukg麦子",re);
       
        return 0;
}
然后。。。两个都无法运行????!!!
小甲鱼的代码的错误指示是
Compiling...
3.c
d:\c语言\class 6\3.c(6) : error C2632: 'long' followed by 'long' is illegal
d:\c语言\class 6\3.c(7) : error C2632: 'long' followed by 'long' is illegal
d:\c语言\class 6\3.c(8) : error C2632: 'long' followed by 'long' is illegal
d:\c语言\class 6\3.c(13) : warning C4244: '=' : conversion from 'double ' to 'unsigned long ', possible loss of data
执行 cl.exe 时出错.

3.obj - 1 error(s), 0 warning(s)
救我。。。。。我卡这个作业卡到要疯了。。。。。。。

灰色的天空 发表于 2019-8-19 00:02:31

%llu

jackz007 发表于 2019-8-19 00:07:00

本帖最后由 jackz007 于 2019-8-19 00:48 编辑

      你的编译器不支持 long long 数据类型,应该是比较老版本的 Visual Studio,变量定义用 unsigned __int64 替换掉 unsigned long long,printf() 的格式描述符用 "%I64u" 替换掉 "%llu",试试看

2164930278 发表于 2019-8-23 11:55:05

jackz007 发表于 2019-8-19 00:07
你的编译器不支持 long long 数据类型,应该是比较老版本的 Visual Studio,变量定义用 unsigned __i ...

支持你的说法,我之前也碰到过。。。{:5_90:}
感觉C语言太依赖库文件了

bin554385863 发表于 2019-8-23 12:48:16

2164930278 发表于 2019-8-23 11:55
支持你的说法,我之前也碰到过。。。
感觉C语言太依赖库文件了

兄弟这个锅C语言可不背,你自己用着远古VC6怪谁?
我用VSCode/VS2017/VS2019咋就没遇到这种问题
页: [1]
查看完整版本: e1s6