[C语言]数据类型与计算

时间:2023-01-26 17:40:13

-------------------------------------------------------------------------------------------------

实际的计算中我们接触的数据不仅仅是整型,那么C语言程序中只使用int也会带来一些问题。

从一个例子开始:

#include <stdio.h>

int main()
{
int a;
printf("输入一个数,得到除以3的结果 :");
scanf("%d", &a);
printf("%d", a/);  //3,小数部分被自动舍去
return ;
}

解决方法:

  1. 使用浮点数做除法运算(整数和浮点数做运算,C将把整数转为浮点数,然后进行浮点数运算)

#include <stdio.h>

int main()
{
double a;
double b; printf("请依次输入两个数,如1 2,计算相除的结果:\n"); scanf("%lf %lf", &a, &b);     //输入用%lf printf("相除结果是:%f \n", a/b); //输出用%f return ;
}

  2. 直接将整数值改为浮点值参与运算

#include <stdio.h>

int main()
{
printf("%f", 10.3/); //3.333333 return ;
}

数据类型:

  整数

  int

  scanf("%d");

  printf("%d", 5);

  浮点数

  double

  scanf("%lf", &a);

  printf("%f", 10.0);

计算:

//一.
#include <stdio.h> int main()
{
//计算1小时30分钟与3小时20分的时间差
/*
步骤:1.使用变量存储数值
2.设定换算方式(公式):小时取分钟差后除以60取整数部分,分钟为分钟差后除以60取余
3.得到结果
*/ int hour1, minute1;
int hour2, minute2; scanf("请输入时间1的小时和分钟:%d %d", &hour1, &minute1); //读入用户的输入值
scanf("请输入时间2的小时和分钟:%d %d", &hour2, &minute2);

   int t1 = hour1 * 60 + minute1;
   int t2 = hour2 * 60 + minute2;
   int t = t2 - t1;    printf("时间差为%d小时%d分钟", t/60, t%60);  //相比下面的方式,效率高些
    /*
   printf("时间差为%d小时%d分钟", ((hour2*+minute2)-(hour1*+minute1))/, ((hour2*+minute2)-(hour1*+minute1))%);
  */

return ;
} //二.
#include <stdio.h>

 int main()

 {

    //使用if判断计算时间差

    int hour1, minute1;

    int hour2, minute2;

    int h = hour2 - hour1;

    int m = minute2 - minute1;

    printf("请输入小时和分钟:");

    scanf("%d %d", &hour1, &minute1);

    printf("请输入第二个小时和分钟:");

    scanf("%d %d", &hour2, &minute2);

    if( m < 0) {

      m = m + 60;

      h--;

    }

    printf("时间差为:%d小时%d分钟", h, m);

    return 0;

 }

 //注:关系运算符有 相等(==),不等于(!=),大于(>),小于(<),大于等于(>=),小于等于(<=)

  满足关系运算符时,结果为整数1,否则为整数0。

  关系运算符优先级比算术运算符低,但比赋值运算符高。

  判断是否相等和不相等的优先级比其它关系运算符低,连续的关系运算符从左到右执行。

  8 >= 1 + 2    //1

  int a = b > 2  //b>2的运算结果赋值给a  

  1 > 2 == 3 > 4  //1

  1 < 2 > 3     //0

  1 == 2 == 0    //1

  3 == 2 > 1    //0

求平均值

#include <stdio.h>

int main()
{
//求平均值
int a,b;
printf("请输入两个数:");
scanf("%d %d", &a, &b);
printf("平均值为:%f", (a + b) / 2.0);
}

运算符优先级:+(正),-(负),*(乘),/(除),%(取余),+(加),-(减),=(赋值)

交换变量的值:

  由于程序是按步执行,如果简单赋值,最后只会得到两个相同的值,这时候就需要第三个变量。

#include <stdio.h>

int main()
{
int a = ;
int b = ;
int c; c = a;
a = b;
b = c; printf("a=%d b=%d", a, b);
}

其它数据输入输出类型:http://www.cnblogs.com/farwish/p/4271457.html

[C语言]进阶|数据类型: 整数, 浮点, 逻辑, 类型转换和条件运算

Link: http://www.cnblogs.com/farwish/p/4168470.html

[C语言]数据类型与计算的更多相关文章

  1. R语言数据类型

    R语言数据类型[转!!]Zhao-Pace  https://www.cnblogs.com/zhao441354231/p/5970544.html   R语言用来存储数据的对象包括: 向量, 因子 ...

  2. Go语言 数据类型,流程控制

    Go语言 数据类型,流程控制 人生苦短,Let's Go ! package main // 必须要有一个main包 import "fmt" func main() { fmt. ...

  3. C语言数据类型的理解

    数据类型的定义: 作为一种语言,必然有所谓的语言组成要素,就像日常生活中人们之间的交流一样,首先会有字,字再成词组,再来就是句子,后来呢就是段落等等.当然不同的字,词,句这些在一起,就会有不同的表达效 ...

  4. C语言数据类型&lowbar;02

    C语言数据类型:

  5. R语言 数据类型

    R语言数据类型 通常,在使用任何编程语言进行编程时,您需要使用各种变量来存储各种信息. 变量只是保留值的存储位置. 这意味着,当你创建一个变量,你必须在内存中保留一些空间来存储它们. 您可能想存储各种 ...

  6. C语言数据类型取值范围

    一.获取数据类型在系统中的位数 在不同的系统中,数据类型的字节数(bytes)不同,位数(bits)也有所不同,那么对应的取值范围也就有了很大的不同,那我们怎么知道你当前的系统中C语言的某个数据类型的 ...

  7. 第三课,T语言数据类型(版本TC5&period;0)

    数据类型 TC综合开发工具里使用的是可变类型,就是在程序执行过程中,TC综合开发工具会自动把数据转换为需要的类型,转换失败会出现相应的提示但是在一些特殊的场景下,是需要做类型强制处理,那么这时就需要使 ...

  8. C语言基础课程 第四课 它山之石可以攻玉---C语言数据类型和表达式

     1         C语言中的数据类型 1.1      常量 常量就是在程序中不可变化的量 1.1.1         #define #define MAX 10 Define;//定义了一 ...

  9. C语言数据类型的表示范围

    1.C和C++语言中基本的数据类型有:字符型(char),整形(short, int, long), 浮点型(float, double)    类型 字节数 类型 字节数 char 1 short ...

随机推荐

  1. &lbrack;nRF51822&rsqb; 15、穿戴式设备上电量检测装置的设计及细节技术点(偏专业硬件文章)

    穿戴式 设备如智能手环.智能手表一般采用几百毫安时的锂离子电池来供电.因此,与之配套的充电电路.稳压电路和电池电量检测电路便必不可少!本文主要谈谈该类消费类电子内部电池电量检测的一般方法及其优缺点. ...

  2. jenkins打包成功,部署失败

    环境一直正常,更新了tomcat版本后自动部署报错 ERROR: Publisher hudson.plugins.deploy.DeployPublisher aborted due to exce ...

  3. js 生成笛卡尔积

    其实生成 笛卡尔积的方法原本很简单,for循环就可以了, function discarts() { //笛卡尔积 var twodDscartes = function (a, b) { var r ...

  4. IPC&lowbar;共享内存

    在IPC(InterProcess Communication)的通信模式下,不管是使用消息队列还是共享内存,甚至是信号量,每个IPC的对象(object)都有唯一的名字,称为“键”(key).通过“ ...

  5. centos 下安装ati显卡驱动方法

    1)到ati的官网(http://support.amd.com/us/gpudownload/Pages/index.aspx)下载相应的驱动,一定要注意 radeon系列和mobility rad ...

  6. Change the ball--hdu2277

    Change the ball Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  7. springboot情操陶冶-&commat;SpringBootApplication注解解析

    承接前文springboot情操陶冶-@Configuration注解解析,本文将在前文的基础上对@SpringBootApplication注解作下简单的分析 @SpringBootApplicat ...

  8. Tsung&&num;160&semi;CentOS&&num;160&semi;操作系统下搭建tsung性能测试环境&lowbar;Part&&num;160&semi;2

    CentOS 操作系统下搭建tsung性能测试环境_Part 2 by:授客 QQ:1033553122 --------------------接CentOS 操作系统下搭建tsung性能测试环境_ ...

  9. js常见知识点1&period;ajax相关

    一. javascript中的typeof返回哪些数据类型? 建议回复: typeof 运算符把类型信息当作字符串返回.typeof 返回值有六种可能: number, string, boolean ...

  10. Angular中引入Bootstrap部分样式失效以及Jquery的&dollar;无法识别

    大多数同学在模仿慕课网的时候可能会遇到引入bootstrap和jquery样式部分失效以及$符号报错,这里为大家提供正确的解决方案. 可能大家在引入试过col-md之后觉得bootstrap是ok的, ...