任何人都可以解释为什么当我将它除以整数时b会在这里被舍入,尽管它是一个浮点数?
#include <stdio.h>
void main() {
int a;
float b, c, d;
a = 750;
b = a / 350;
c = 750;
d = c / 350;
printf("%.2f %.2f", b, d);
// output: 2.00 2.14
}
Run Code Online (Sandbox Code Playgroud)
我得到了这个C代码.
#include <stdio.h>
int main(void)
{
int n, d, i;
double t=0, k;
scanf("%d %d", &n, &d);
t = (1/100) * d;
k = n / 3;
printf("%.2lf\t%.2lf\n", t, k);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我想知道为什么我的变量't'总是为零(在printf函数中)?
自学C并发现当我为温度转换进行等式时,除非我将分数更改为小数,否则它将无效.即
tempC=(.555*(tempF-32)) 会工作,但tempC=((5/9)*(tempF-32)) 不会奏效.
为什么?
根据C Primer Plus,它应该可以工作,因为我正在使用tempC和tempF的浮子.
我需要一些帮助,用于将华氏温度转换为C摄氏温度的程序.我的代码看起来像这样
#include <stdio.h>
int main(void)
{
int fahrenheit;
double celsius;
printf("Enter the temperature in degrees fahrenheit:\n\n\n\n");
scanf("%d", &fahrenheit);
celsius = (5 / 9) * (fahrenheit - 32);
printf("The converted temperature is %lf\n", celsius);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
每次执行它时,结果为0.000000.我知道我错过了什么,但无法弄清楚是什么.
这就是我的意思
double x=1.1402
double pow=1/3;
std::pow(x,pow) -1;
Run Code Online (Sandbox Code Playgroud)
结果是0但我期望0.4465
等式 (1 + x) ^3= 1.1402,找到x.
我试图用蒙特卡罗方法计算PI.无论MAXLEN有多大,我的代码都会给出结果3.000.经过多次调试后,我无法得到我做错的事.
#include <stdio.h>
#include <stdlib.h>
#define sqr2(x) ((x)*(x))
#define frand() ((double) rand() / (RAND_MAX))
#define MAXLEN 1000
int circumscribed(int radius){
float xcoord = frand();
float ycoord = frand();
float coord = sqr2(xcoord) + sqr2(ycoord);
if(coord <= radius)
return 1;
return -1;
}
int main()
{
int i;
int circles = 0, rect = 0;;
for(i = 0; i < MAXLEN; i++)
{
if(circumscribed(1) > 0) // if(circumscribed(1)) shoul be enough but it doesn't work. Very odd in my opinion.
circles++; …Run Code Online (Sandbox Code Playgroud) 我写了一个简单的程序,它读取一个整数number并打印:1 / number.
我不明白为什么输出总是:0.000.
void main()
{
int n = 0;
scanf("%d",&n);
float f = 1 / n;
printf("%f",f);
}
Run Code Online (Sandbox Code Playgroud)