lsp3359869138 发表于 2021-10-12 23:32:22

跟着课程走的,但结果不对

我更着课程学的,但结果不对,怎么回事。
#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("舍罕王应该给予达依尔%11u粒麦子!\n",sum);
      printf("如果每25000粒麦子为1kg,那么应该给%11u公斤麦子!\n",weight);

      return 0;
}


wp231957 发表于 2021-10-13 07:03:46

llu不是11u   能对才怪

lsp3359869138 发表于 2021-10-14 14:35:50

wp231957 发表于 2021-10-13 07:03
llu不是11u   能对才怪

llU是什么意思?

wp231957 发表于 2021-10-14 15:33:58

lsp3359869138 发表于 2021-10-14 14:35
llU是什么意思?

长长无符号整
就是那个什么xxxlonglong

bszs 发表于 2021-10-14 16:30:48

lsp3359869138 发表于 2021-10-14 14:35
llU是什么意思?

long long int对应llu ,注意大小写

傻眼貓咪 发表于 2021-10-14 17:00:55

本帖最后由 傻眼貓咪 于 2021-10-14 17:05 编辑

#include <stdio.h>

int main(){
    unsigned long long wheat = 0, kg;
    for(int i=0; i<64; i++) wheat += 2<<i; // 这里用位元运算符速度更快
    kg = wheat/25000;
    printf("舍罕王应该给予达依尔%llu粒麦子!\n如果每25000粒麦子为1公斤,那么应该给%llu公斤麦子!\n", wheat, kg);
    return 0;
}舍罕王应该给予达依尔18446744073709551612粒麦子!
如果每25000粒麦子为1公斤,那么应该给737869762948382公斤麦子!
页: [1]
查看完整版本: 跟着课程走的,但结果不对