-5

質問したばかりですが、欲しいものが得られず、長すぎて編集して返信できませんでした。私の質問は同じで、その質問へのリンクです。Cで小数を保持する方法

#include<stdio.h>

int main()
{
    float b,c,;
    int a,kk;
    printf("Welcome to the unit conversion program\n");
    printf("This program can convert the measurements of;\n");
    printf("1-Length\n");
    printf("2-Mass\n");
    printf("Please select the number that corresponds to the measurement you want to convert in:\n");
    scanf("%d",&a);
    if (a==1){
          printf("Your number will be converted from inches to centimeters.\n");
          printf("Please enter the length.\n");
          scanf("%f",&b);
          c=b*2.54;
          printf("%f inch is %f cm.",b,c);
          scanf("%d",kk); \. to avoid to shut the cmd windows .\
          }

      else if (a==2){
           printf("Your number will be converted from pounds (lbs) to kilograms");
           printf("Please enter the mass.\n");
           scanf("%d",&b);
           c=b*0.45359237;
           printf("%d lbs is %d kgs.",b,c);
       }
    return 0;
}
4

2 に答える 2

0

エラーは、%dと の両方の書式指定子がdecimalscanfprintf表しているため、 ( の場合はへのポインタ)を期待することです。intscanfint

band casfloatを宣言しているので%d、行で

scanf("%d",&b);

printf("%d lbs is %d kgs.",b,c);

それぞれに変更する必要があり%fます。

ちょっとしたアドバイス:doubleの代わりに を使用してfloatください。精度が向上し、多くのマシンでパフォーマンスが向上します。欠点は、より多くのスペースを占有することですfloatが、ほとんどの場合、それは問題ではありません。

を使用している場合は、%finprintf%lfinを使用する必要があります。scanfdouble

于 2013-09-29T14:49:47.597 に答える