gpt4 book ai didi

c - printf:格式 -Wformat 中的未知转换类型字符 ')'

转载 作者:行者123 更新时间:2023-12-04 10:52:49 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to escape the % (percent) sign in C's printf

(13 个回答)


8 年前关闭。




我写了一个 C 程序,它给出了以下编译错误。

rand_distribution.c:24:7: warning: unknown conversion type character ‘)’ in format [-Wformat]

在这一行
 printf("%d: %d (%.2lf %) \n", i+1, frequencies[i],100.0 * frequencies[i] / TOTAL_COUNT);

My objective to get an output like this.
1: 333109 (16.66%)
2: 333113 (16.66%)
3: 333181 (16.66%)
4: 333562 (16.68%)
5: 333601 (16.68%)
6: 333434 (16.67%)

也就是说,')' 之前的 '%' 应该按原样打印而不被解释。我该如何实现?
#include <stdio.h>
#include <stdlib.h> // for rand(), srand()
#include <time.h> // for time()

const int TOTAL_COUNT = 2000000; // Close to INT_MAX
const int NUM_FACES = 6;
int frequencies[6] = {0}; // frequencies of 0 to 5, init to zero

int main()
{
srand(time(0)); /* seed random number generator with current time*/

/* Throw the die and count the frequencies*/
int i = 0;
for (i = 0; i < TOTAL_COUNT; ++i)
{
++frequencies[rand() % 6];
}

/*Print statisics*/
for (i = 0; i < NUM_FACES; i++)
{
printf("%d: %d (%.2lf %) \n", i+1, frequencies[i],100.0 * frequencies[i] / TOTAL_COUNT);
}
}

最佳答案

您需要逃离 %签到%%
%)不匹配它失败的任何变量类型。通过添加 % 来逃避它在它之前。

你的新线路应该是,

printf("%d: %d (%.2lf %%) \n", i+1, frequencies[i],100.0 * frequencies[i] / TOTAL_COUNT);

关于c - printf:格式 -Wformat 中的未知转换类型字符 ')',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18137490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com