gpt4 book ai didi

c - 初学者类型转换

转载 作者:行者123 更新时间:2023-11-30 17:42:08 24 4
gpt4 key购买 nike

总的来说,我对编程非常陌生,所以请原谅我的新手。我正在尝试缩小下面函数中的 res[?] 数组。我知道 res[?]*(multiplier/100) 正在创建一个十进制答案而不是所需的整数格式,因此我需要在将结果插入 res[?] 之前对其进行转换。

我确实考虑过将 res[] 数组转换为 double,但我不确定 initwindow(?,?) 是否与整数值兼容。

我在 mingw 上使用代码块。链接器和编译器有我的教授定制的设置。我使用的是 Plain\basic C???

我尝试应用该网站使用的有关截断转换的技术。但似乎不起作用。 http://www.cs.tut.fi/~jkorpela/round.html调试器观察程序显示 res[?] 等于 0。

#include <stdio.h>
#include <graphics_lib.h>
#include <math.h>


int res[2]//contains a array which contains the vertical and horizontal detected resolution from main()
void function(res)
{
printf("Please note the lowest resolution available is 800x600\n");
printf("Please enter percentage ratio % below 100:");
scanf("%d",&multiplier);
res[1]=(int)(res[1]*(multiplier/100));
res[2]=(int)(res[2]*(multiplier/100));

blah blah blah blah.............

initwindow(res[1],res[2]) //from custom header that my professor made which initializes basic graphics window
return;
}

最佳答案

我假设 multiplier 是一个 int 以匹配 %d 格式。

multiplier/100 保证为零(如果用户遵循指示并提供小于 100 的数字)。您可以执行 (res[x]*multiplier)/100 来确保首先发生乘法(如果没有括号,您可能没问题,但与其考虑操作顺序,为什么不明确呢? )

转换为 int 是不必要的,因为 int 除以另一个 int 始终是 int

除非您的教授做了一些非常有趣的事情,否则您还应该注意,像 res 这样的二元素数组将包含元素 res[0]res[1],而不是 res[1]res[2]

关于c - 初学者类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20793276/

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