回 帖 发 新 帖 刷新版面

主题:这是什么原因

#include<stdio.h>
main()
{ int t,s;
     scanf("%d",&t);
   while(t--)
     {
      char a,b,c;
      float d;
      a=getchar();
      b=getchar();
      c=getchar();
      d=(a+b+c)/3.0;
      printf("% .2f",d);
      }

}
这个是我第一次做的,调试出来的结果不正确。
#include<stdio.h>
main()
{ int t,s;
     scanf("%d",&t);
   while(t--)
     {
      char a,b,c;
      float d;
      a=getch();
      b=getch();
      c=getch();
      d=(a+b+c)/3.0;
      printf("% .2f",d);
      }

}
而当我把getchar改成了getch,调试正确,所以想问问各位前辈,指点迷津。

回复列表 (共5个回复)

沙发


你这个是求平均数吧
你把他们定义成字符,在输出本身就错了
字符里的数字跟整形数是俩个概念
字符里的0等于整形的48
你可以查ASCII表来看
其次,如果想要用数字输入,可以直接用scanf("%f",&a);
前提是先把a定义成浮点型

板凳

但是这个程序要求的是输入3个字符求他们转化成整型数值的平均值,还有我问的是getch和getchar他们之间区别,第一次调试成功 为什么第二个就不行了呢?

3 楼

字符输入:如0;其实ASCII 48转换为数字0:‘0’- 48;
以此类推:1就是‘1’ - 48相当于数字1
#include <stdio.h>
int main()
{
    char ch;
    ch = getchar();
    printf("%d\n", ch - 48);
    return 0;
}

4 楼

至于getch和getchar
楼主百度吧。
getche和getch是一个可显,一个不可显
头文件是#include<conio.h>

5 楼

楼主,若阁下的程序没包含头文件#include<conio.h>都还可以运行,本人实在是有点想不开了.关于getch()和getchar()两者的区别:getch()与getchar()基本功能相同,差别是getch()直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch()就立刻返回,getch()返回值是用户输入的ASCII码,出错返回-1.输入的字符不会在屏慕上显示.而getchar()和getch()的上述特征基本相反,在下不说,想必楼主也清楚![em1]

我来回复

您尚未登录,请登录后再回复。点此登录或注册