c语言-数据操作的问题,,C语言,炒鸡简单,求解答

问题描述

数据操作的问题,,C语言,炒鸡简单,求解答
#include
#include
int main()
{
int abc;
scanf(""%d %d %d""&a&b&c);
//double abc;
//scanf(""%f %f %f""&a&b&c);
if(a==b&&b==c)
printf(""等边三角形n"");
else if((a==b&&b!=c)||(a==c&&b!=c)||(b==c&&a!=c))
printf(""等腰三角形n"");
else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
printf(""直角三角形n"");
else if(c>=a+b||b>=a+c||a>=b+c||a==0||b==0||c==0)
printf(""这他妈怎么可能是三角形n"");
else
printf(""不等边三角形n"");
return 0;
}

问题是这样的,我把三个边的数据类型改为双精度类型之后,出现只执行到直角那里。但是我要用到整型的话,这就是正常的,想想好像应该和数据在内存中的表现有关,但是具体过程还是不太明白,求高手赐教。

解决方案

scanf里全改%lf

解决方案二:
f是float类型的输入,lf是double的

解决方案三:
改成lf虽然解决了问题,但是在编程中要注意。计算机对浮点数的存储并不是绝对的精确存储,所以要尽量避免浮点数的此类(==)判断
---------------(勿喷)

时间: 2024-12-05 22:40:04

c语言-数据操作的问题,,C语言,炒鸡简单,求解答的相关文章

磁盘-新手学习C语言文件,问题已经在程序中备注,求解答!

问题描述 新手学习C语言文件,问题已经在程序中备注,求解答! //怎样向文件读写字符 #include #include int main() { FILE * fp; char ch,filename[10]: printf("请输入所用的文件名:"); scanf("%s",filename); if((fp = fopen(filename,"w")) == NULL)//为什么这里的filename没有双引号引起来: { printf(&

dataset-C#控件DataGridView 用逐行添加数据的方式 加载速度奇慢无比 求解答

问题描述 C#控件DataGridView 用逐行添加数据的方式 加载速度奇慢无比 求解答 大概1000条 16列 如果把数据放到Dataset中然后绑定DataSource 加载基本是瞬间完成,速度很快. 但是如果 foreach{ DataGridViewRow dgvr = this.dataGridView1.Rows[this.dataGridView1.Rows.Add()]; dgvr.Cells["productName"].Value = ps.Name; .....

C语言递归操作用法总结_C 语言

本文实例总结了C语言递归操作用法.分享给大家供大家参考,具体如下: 用归纳法来理解递归 步进表达式:问题蜕变成子问题的表达式结束条件:什么时候可以不再是用步进表达式直接求解表达式:在结束条件下能够直接计算返回值的表达式逻辑归纳项:适用于一切非适用于结束条件的子问题的处理,当然上面的步进表达式其实就是包含在这里面了. 递归算法的一般形式: void func( mode) { if(endCondition) { constExpression //基本项 } else { accumrateEx

C语言数据类型转换实例代码_C 语言

数据类型转换就是将数据(变量.表达式的结果)从一种类型转换到另一种类型.例如,为了保存小数你可以将int类型的变量转换为double类型. 数据类型转换的一般格式为: (type_name) expression type_name为要转换到的数据类型,expression为表达式.例如: (float) a; //把a转换为实型 (int)(x+y); //把x+y的结果转换为整型 (float) 100; //将一个常量转换为实型 [示例]将整数转换为浮点数: #include <stdio

在没有任何数据时进行无效的读取尝试。 错误求解答

问题描述 protectedvoidButton1_Click(objectsender,EventArgse)//登录界面用户的登录,验证码验证.{stringsqltext="select*from用户注册信息";SqlConnectionconn=newSqlConnection("server=SILENT-PC\SILENT;database=阳光传媒用户数据库;integratedsecurity=true");conn.Open();SqlComman

C语言文件操作

        文章出自:海子         修改:㈠輩子.戀蒶--标哥                                           C语言文件操作解析(二)        C语言中对文件进行操作必须首先打开文件,打开文件主要涉及到fopen函数.fopen函数的原型为        FILE* fopen(const char *path,const char *mode)        其中path为文件路径,mode为打开方式        1)对于文件路径,只需

C语言中操作密码文件的一些函数总结_C 语言

C语言setpwent()函数:从头读取密码文件中的账号数据 头文件: #include <pwd.h> #include <sys/types.h> 定义函数: void setpwent(void); 函数说明:setpwent()用来将getpwent()的读写地址指回密码文件开头. 范例 #include <pwd.h> #include <sys/types.h> main() { struct passwd *user; int i; for(i

MySQL 服务器变量 数据操作DML-视图

原文:MySQL 服务器变量 数据操作DML-视图 SQL语言的组成部分 常见分类: DDL:数据定义语言 DCL:数据控制语言,如授权 DML:数据操作语言 其它分类: 完整性定义语言: DDL的一部分功能约束 约束:包括主键,外键,唯一键,条件,非空,事务等各类约束 视图定义:即虚表,就是存储下来的SELECT语句 事务控制 嵌入式SQL和动态SQL   数据字典:系统编目(system catalog) 作用:保存数据库服务器上的元数据 保存元数据的数据库有: information_sc

c-C语言:进程间传递指针来实现数据操作是否会有安全隐患?

问题描述 C语言:进程间传递指针来实现数据操作是否会有安全隐患? 涉及两个进程,A和B,A和B可通信. 进程A管理一个链表,A会把某个链表节点的一些特征参数发送给进程B,后面进程B会把一开始得到的节点特征发送回A,A再对链表进行遍历匹配,匹配对应的节点,进行操作. 如果A一开始把节点指针直接给B,B后面需要对节点操作时直接把指针发回给A,这样就不用遍历链表.但是这样做是不是不合理?就是是不是有安全性之类的问题? 解决方案 跨进程传递指针没有意义,对方进程拿到指针也访问不了内存.既然如此,为何要传