循环中的表格无法正确显示数据

时间:2019-03-07 21:08:38

标签: c

我有一个小程序,可以将用户输入从华氏温度转换为摄氏温度。然后,它会以摄氏1到100的华氏度显示相应的华氏温度。但是在运行时,它会输出。

  

20华氏度= -15摄氏度25华氏度= -15摄氏度30   华氏= -15摄氏度
  35华氏度= -15摄氏度40华氏度= -15摄氏度45   华氏= -15摄氏度
  50华氏度= -15摄氏度
  6华氏度= -14摄氏度12华氏度= -14摄氏度18   华氏= -14摄氏度
  24华氏度= -14摄氏度30华氏度= -14摄氏度36   华氏= -14摄氏度
  42华氏度= -14摄氏度48华氏度= -14摄氏度54   华氏= -14摄氏度
  60华氏度= -14摄氏度
  7华氏度= -13摄氏度14华氏度= -13摄氏度21   华氏= -13摄氏度
  28华氏度= -13摄氏度35华氏度= -13摄氏度42   华氏= -13摄氏度
  49华氏度= -13摄氏度56华氏度= -13摄氏度63   华氏= -13摄氏度
  70华氏度= -13摄氏度
  8华氏度= -13摄氏度16华氏度= -13摄氏度24   华氏= -13摄氏度
  32华氏度= -13摄氏度40华氏度= -13摄氏度48   华氏= -13摄氏度
  56华氏度= -13摄氏度64华氏度= -13摄氏度72   华氏= -13摄氏度
  80华氏度= -13摄氏度
  9华氏度= -12摄氏度18华氏度= -12摄氏度27   华氏= -12摄氏度
  36华氏度= -12摄氏度45华氏度= -12摄氏度54   华氏= -12摄氏度

这是我的代码。

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    //Clear the screen
    system("clear");

    float celsius, fahrenheit;
    printf("Please enter the temperature in Fahrenheit: \n");
    scanf("%f", &fahrenheit);

    //Converts the temperature from fahrenheit to celsius
    celsius = (fahrenheit - 32) * 5 / 9;

    printf("%.2f Fahrenheit = %.2f Celsius \n", fahrenheit, celsius);
    printf ("-------------------------------- \n");

    int i,j;
    int num;
    float c;

    //Loop to create table
    for(i=1; i<=10; i++)
    {
        num = i;
        for(j=1; j<=10; j++)
        {
            c = (i*j-32) * 5 / 9;
            printf("%3d Fahrenheit = %f Celcius \t",(i*j), c);
        }

        printf("\n");
    }
    return 0;
}

1 个答案:

答案 0 :(得分:0)

以下是问题和修复的摘要:

确保为浮点数/双打使用正确的类型

建议您执行一个函数:

double f2c(double f) {
     return (f - 32.0) * 5/9;
}

int main() {
      printf("%g°F = %g°C\n", 100.0, f2c(100.0));
}

从0到99计数

for(i = 0; i <100; i ++){    }

漂亮的打印0-99,每行10s换一行

for(i = 0; i <100; i ++){          print(“%3d%1c”,i,(1 + i)%10?'':'\ n');    }

将它们放在一起

#include <stdio.h>

double f2c(double f) {
     return (f - 32) * 5/9;
}

int main() {
    int i;
    for(i = 0; i < 213; i++) {
        printf("%3d°F => %3.0f°C%s", i, f2c(i), (1+i) % 10? " | " : "\n");
    }
}