如何用 C 语言编写一个简单的程序将克转换为毫克,反之亦然
How to write a simple program in c language to transform grams to miligrams and vice versa
我想用 c 编写一个程序,将毫克转换为克,反之亦然。我尝试了下面的方法,但我得到了零作为输出。请问怎么了。
我的做法:
#include<stdio.h>
int main()
{
char input;
double mili = 0,gram = 0;
printf("\n give input \n");
scanf("%c", &input);
if (input == 'g')
{
printf("\n enter grams to transform to miligrams \n");
scanf("%f",&gram);
mili=gram/1000;
printf("\n the transformation of %.10lf grams to miligrams is %.10lf \n",input,mili);
}
else if (input == 'm')
{
printf("\n enter miligrams to transform to grams \n");
scanf("%f",mili);
gram=mili*1000;
printf("\n the trasnformation of %.2f miligrams to grams is %.2f \n",input,gram);
}
else
printf("\n wrong input \n");
return 0 ;
}
这里有三个问题:
首先,对于 gram
和 mili
,您使用的是 %f
,它在您传递 double *
时需要 float *
.您需要使用 %lf
来读取 double
.
其次,您的计算有误。毫克 = 克 * 1000 和克 = 毫克 / 1000。
第三,当你应该打印 gram
和 mili
.
时,你在两个地方打印了 input
阅读double
使用"%lf"
,反向数学计算,不打印input
而是gram
和mili
:
更正:
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main()
{
char input;
double mili = 0;
double gram = 0;
printf("\n give input \n");
scanf("%c", &input);
if (input == 'g')
{
printf("\n enter grams to transform to milligrams \n");
scanf("%lf", &gram);
mili = gram*1000.0;
printf("\n the transformation of %lf grams to milligrams is %lf \n", gram, mili);
}
else if (input == 'm')
{
printf("\n enter milligrams to transform to grams \n");
scanf("%lf", &mili);
gram = mili/1000.0;
printf("\n the transformation of %.2f milligrams to grams is %.2f \n",mili,gram);
}
else
printf("\n wrong input \n");
return 0 ;
}
测试:
give input
m
enter milligrams to transform to grams
2000
the transformation of 2000.00 milligrams to grams is 2.00
give input
g
enter grams to transform to milligrams
5
the transformation of 5.000000 grams to milligrams is 5000.000000
你的数学被混淆为克=milligrams/1000和毫克=克*1000。您需要将输入类型更改为 double 而不是使用 float。
我想用 c 编写一个程序,将毫克转换为克,反之亦然。我尝试了下面的方法,但我得到了零作为输出。请问怎么了。
我的做法:
#include<stdio.h>
int main()
{
char input;
double mili = 0,gram = 0;
printf("\n give input \n");
scanf("%c", &input);
if (input == 'g')
{
printf("\n enter grams to transform to miligrams \n");
scanf("%f",&gram);
mili=gram/1000;
printf("\n the transformation of %.10lf grams to miligrams is %.10lf \n",input,mili);
}
else if (input == 'm')
{
printf("\n enter miligrams to transform to grams \n");
scanf("%f",mili);
gram=mili*1000;
printf("\n the trasnformation of %.2f miligrams to grams is %.2f \n",input,gram);
}
else
printf("\n wrong input \n");
return 0 ;
}
这里有三个问题:
首先,对于 gram
和 mili
,您使用的是 %f
,它在您传递 double *
时需要 float *
.您需要使用 %lf
来读取 double
.
其次,您的计算有误。毫克 = 克 * 1000 和克 = 毫克 / 1000。
第三,当你应该打印 gram
和 mili
.
input
阅读double
使用"%lf"
,反向数学计算,不打印input
而是gram
和mili
:
更正:
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main()
{
char input;
double mili = 0;
double gram = 0;
printf("\n give input \n");
scanf("%c", &input);
if (input == 'g')
{
printf("\n enter grams to transform to milligrams \n");
scanf("%lf", &gram);
mili = gram*1000.0;
printf("\n the transformation of %lf grams to milligrams is %lf \n", gram, mili);
}
else if (input == 'm')
{
printf("\n enter milligrams to transform to grams \n");
scanf("%lf", &mili);
gram = mili/1000.0;
printf("\n the transformation of %.2f milligrams to grams is %.2f \n",mili,gram);
}
else
printf("\n wrong input \n");
return 0 ;
}
测试:
give input
m
enter milligrams to transform to grams
2000
the transformation of 2000.00 milligrams to grams is 2.00
give input
g
enter grams to transform to milligrams
5
the transformation of 5.000000 grams to milligrams is 5000.000000
你的数学被混淆为克=milligrams/1000和毫克=克*1000。您需要将输入类型更改为 double 而不是使用 float。