打印

[提问] 有谁能帮我看看这个程序有问题么?

有谁能帮我看看这个程序有问题么?

#include<stdio.h>
main()
{
  float a,b,f,c,g;
  printf("摄氏/华氏转换程序\n1)摄氏->华氏2)华氏->摄氏\n\n please choise:");
  scanf("%f\n",&a);
  if(a==1)
  {
    printf("please input C:");
    scanf("%f\n",&b);
f=(9*b)/5+32;
    printf("THE reasult is:%f\n",f);
  }
  else
  {
  printf("please intput F:");
  scanf("%f\n",&g);
       c=(g-32)/9*5;
  printf("THE reasult is:%f\n",c);
  }
       }
我是个初学者,想请教下各位这个程序有没什么我没注意到的地方需要改进一下,在TC里面运行有点问题。谢谢了啊!

TOP

好象没什么问题,就是scanf里为什么要加个\n呢,没这个必要
用vc把,好用
还有就是,如果别人选3或4呢,其不都按2运行了

TOP

哦~那个也是 在else后面加个(a==2)就行了
不过拿到TC里运行就是有点不对劲,怎么提示要我输入3次,昏迷```

回复 #1 xyq560787 的帖子

呵呵,初学编程,先支持一下你哈^_^

另外提点意见哈
1.你的变量的命名我实在是看不懂,你的变量名让我糊涂,程序变得不易读。。。
2.说说scanf中的“/n”是什么意思?说不出来?那就删了
3.选择的过程中我输错了怎么办?没有容错处理啊,还有我像推出程序怎么办?
4.printf("please input C:")中的C是什么?用的人如果不知道呢?是不是该把公式printf出来
                                       让使用者看看?
5.需要你注意一下,float变量不要随意使用,我是从来不用这个变量类型的,因为你看看它的内存结构就会发现这个类型变量存在一定的计算误差,需要精确结算的时候需要自己写算法,不可以使用float类型(个人意见)
学了6年了,还是初学者。。。。。。。。

TOP

引用:
原帖由 xyq560787 于 2007-2-21 11:57 发表
哦~那个也是 在else后面加个(a==2)就行了
不过拿到TC里运行就是有点不对劲,怎么提示要我输入3次,昏迷```
关于这个问题,其实大部分的人都碰到过,多次输入就会出现问题,解决的方法当然是有,但是我建议你自己插一下出现错误的原因以及其原理,然后你的收获肯定会很大的
学了6年了,还是初学者。。。。。。。。
谢谢版主给我提这么多意见哦,我会好好记住滴!

发现编程还是蛮有意思的,以后要努力学了``呵呵

TOP

我郑重建议要加些容错语句~~
这个在VC中运行肯定是对的,不过我不知道,这个转换算法是怎么算的?

TOP

这个在VC中运行肯定是对的,不过我不知道,这个转换算法是怎么算的?

Processed in 0.048757 second(s), 5 queries, Gzip enabled