如何用 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 ;
}

这里有三个问题:

首先,对于 grammili,您使用的是 %f,它在您传递 double * 时需要 float * .您需要使用 %lf 来读取 double.

其次,您的计算有误。毫克 = 克 * 1000 和克 = 毫克 / 1000。

第三,当你应该打印 grammili.

时,你在两个地方打印了 input

阅读double使用"%lf",反向数学计算,不打印input而是grammili:

更正:

#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。