C编程的问题:为什么变量类型为float则正确,double就得不出正确结果呢?请高手赐教. 如下:

来自:    更新日期:早些时候
在java中不能用float和double表示,那用什么表示金额变量最准确~

money

double应该用%lf
就是scanf("%f,%f,%f",&a,&b,&c);
当中的%f应该改成%lf
printf("三角形面积为%.1f
",s);
也应该一样改成%lf
float时可以用%f
double时用%lf

结果如下
#include
#include
main()
{
double a,b,c;
double t,s;
printf("请输入三角形三边长,以回车确定
");
scanf("%lf,%lf,%lf",&a,&b,&c);
t=(a+b+c)/2;
s=sqrt(t*(t-a)*(t-c)*(t-b));
printf("三角形面积为%.1lf
",s);
}
你再试试..

对于在scanf中输入的数据要分清,到底是double型还是float型,因为如果定义的是double型而在输入的时候写的是scanf("%f",%a)就会出现错误,必须写成scanf("%lf",%a),其他类型的如int和long型的也一样,所以平时要注意这一点!!!

其实主体程序是没有错的,我看了一下,你所谓的double不行的那一个程序中也就是一个小问题:主程序里的输入部分“scanf("%f,%d",&a,&b);”既然在main函数里定义了a为double型,那么在输如语句应写成“%lf”,即改成scanf("%lf,%d",&a,&b);
跟double类型有关的输入时用格式“%lf”,输出时用格式“%lf”或“%f”。

兄弟,再练练,简单代码写的过于复杂了!
看scanf("%f,%d",&a,&b); 对于double型a肯定要要用%lf严格格式处理了,c语言的scanf功能虽强大,但要求你规范输入,当然对于printf中的%f,float、double型参数都可输出

#include<stdio.h>
#include <math.h>
double power(float x,int n)
{
int nn=fabs(n);
double m=1.0;
while(nn--)
m*=x;
return n>0?m:1/m;

}
void main()
{
double a;
int b;
printf("请分别输入幂的底数,指数:");
scanf("%lf,%d",&a,&b);
printf("函数值为:%f\n",power(a,b));
}


C编程的问题:为什么变量类型为float则正确,double就得不出正确结果呢?请高手赐教. 如下:视频

相关评论:
  • 18846587309C编程的问题:为什么变量类型为float则正确,double就得不出正确结果呢...
    单菁馥对于在scanf中输入的数据要分清,到底是double型还是float型,因为如果定义的是double型而在输入的时候写的是scanf("%f",%a)就会出现错误,必须写成scanf("%lf",%a),其他类型的如int和long型的也一样,所以平时要注意这一点!!!

  • 188465873093.编写C语言程序完成计算机运算时,为什么要指定数据的类型?
    单菁馥一、不同类型数据所需空间大小不同,指定类型方便编程分配内存空间。二、cpu处理整型及浮点数方法不同(直接加法器可完成整数运算,浮点则不行)。指定类型方便数据分析运算。三、指定类型,可方便数据输入的验证,传值及返回值的处理。四、同理内存数据要输出呈现给用户也要对应类型(比如ascii码能表示数...

  • 18846587309用C语言给单片机编程时,主函数中的变量为什么都得定义成全局变量
    单菁馥定时器输出0到9,每一秒变化一次,其中int_count、second是全局变量这是因为,int_count是中断次数统计,他需要在完成一次次的中断以后数值保持不变,如果定义成局部变量,没发生一次中断,它加一,中断结束又变成0了,所以定义成全局变量,这样他的数值会根据中断发生的次数不断增加。而second则因为是数码...

  • 18846587309c语言中,为什么定义一个char*型的变量会报错。
    单菁馥这是说明类型不兼容,强制转类型。在声明变量 char* 时改成 const char *即可。当用户想在.h声明中定义成员变量,有时会报类型重定义错误,如果不是工程中真的重复定义了多个同名类,那么多半是没有给该类的头文件加条件指示符#ifndef。条件指示符#ifndef 最主要的目的就是防止头文件的重复包含和编...

  • 18846587309C语言变量的定义与使用
    单菁馥变量特性:第一、变量定义要选择恰到好处的类型,变量的类型直接决定了它所存储的数据取值范围,这类似于我们生活中使用的各种容器,选择合适的变量类型,不但能保证数据存储安全,还能有效的节约系统资源;第二、变量的作用范围必须清楚,C语言最基本的功能单元是函数,在函数内部使用的变量是私有变量,只能...

  • 18846587309C语言变量的基本类型有哪些?
    单菁馥c语言的变量有三种类型:char,int,float,double 其中char为字符类型的变量是八位的,最前一位作为符号位,后面七位作为数据位.它的存储范围在-128到127之间.int整数类型的变量是16位的,最前一位为符号位,后面的15位作为数据位.它的存储范围在-215到215-1.也就是-32768到32767.它不包扩小数点以后的...

  • 18846587309在C语言中为什么要定义数据类型
    单菁馥C中定义数据类型是为了容易编程,定义了数据类型之后又定义了数据类型之间的各种运算,这样对编程人来说就会方便很多,如果不定义数据类型,那么数据之间的差别只有位不同而已,这样如果要定义一个字符变量,你首先要去申请一个8位的内存,再去按ASCII码对其进行赋值,这样对编程人员来说是很恐怖的。

  • 18846587309C语言编程中经常会出现未定义的是怎么回事??
    单菁馥在C语言中,出现未定义,简单来说有以下几种原因:1、变量类型没有指定。2、指定类型的方式与C++混淆了,特别是在.c文件中容易出现这种错误。3、变量指定了类型,但是与使用的变量名不符合,使用的变量名会提示为未定义。 本回答由电脑网络分类达人 11推荐 举报| 答案纠错 | 评论 0 3 ...

  • 18846587309C语言的整型变量
    单菁馥问题描述:C语言的整型变量分别是哪4种整型类型以及他们的符号是什么?解析:整型变量 整型变量可分为以下几类:1.基本型 类型说明符为int,在内存中占2个字节,其取值为基本整常数。2.短整量 类型说明符为short int或short'C110F1。所占字节和取值范围均与基本型相同。3.长整型 类型说明符为long ...

  • 18846587309C语言中,变量到底是个什么概念?
    单菁馥C语言中的变量是指在程序运行时其值可以改变的量,变量的功能就是存储数据。变量有三个基本要素:变量名:每一个变量都应该有一个名字。变量的数据类型:每一个变量都应具有一种数据类型(在定义时指定)内存中占据一定的储存空间 变量的值:变量对应的存贮空间中所存放的数。

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网