bailetayiyan 发表于 2023-4-18 21:41:15

c语言教程s1e6课后作业求助

#include<stdio.h>

#include<math.h>

int main()
{
        unsigned long long int sum = 0;
        unsigned long long int temp;
        unsigned long long int 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,那么应该给%llukg麦子!\n",weight);
   
    return 0;

}

求解释一下第一个printf这里的%llu   {:5_92:}

isdkz 发表于 2023-4-18 21:42:12

在这个C程序中,printf() 函数用于将输出写入控制台。在第一个 printf() 函数中,%llu 是格式控制符,用于指示该函数将输出一个 unsigned long long int 类型的整数值。


[*]%llu 中的 ll 表示长度限定符 long long,它告诉 printf() 函数输出一个 unsigned long long 类型的整数值。
[*]%u 是用于输出无符号整数的格式控制符,但是 unsigned long long 长度超出了 %u 的范围,因此需要使用 %llu。


因此,在第一个 printf() 函数中,%llu 用于输出 sum 变量,该变量是一个 unsigned long long int 类型的整数值,表示舍罕王应该给达依尔的麦子数量。

陶远航 发表于 2023-4-22 10:11:39

在这个程序中,`%llu` 是一个格式说明符,用于将无符号长长整数 (unsigned long long int) 值插入到字符串中。其中,`%` 表示格式说明符的开始,`ll` 表示参数是一个长长整数,`u` 表示参数是无符号类型。

因为 `sum` 变量是一个无符号长长整数,所以在使用 `printf()` 函数时,需要使用 `%llu` 格式说明符来打印这个变量的值。如果使用错误的格式说明符,可能会导致打印出的结果不正确或程序崩溃。

需要注意的是,在不同的编译器或操作系统中,可能会有不同的格式说明符,因此在编写程序时,需要根据具体情况选择正确的格式说明符。

yinda_peng 发表于 2023-4-22 16:02:12

就是一个格式化,具体可见https://fishc.com.cn/thread-66471-1-1.html
页: [1]
查看完整版本: c语言教程s1e6课后作业求助