第二章 运算和数据类型

2-1 运算
1、四则运算:
binary * operator、 / operator、 % operator、 binary + operator、 binary - operator

[2-1]读取两个整数,显示他它们的和、差、积、商、余数

#include<stdio.h>

int main()
{
    int num1, num2;

    puts("请输入两个整数:");

    printf("请输入num1:");
    scanf("%d", &num1);
    printf("请输入num2:");
    scanf("%d", &num2);

    printf("%d + %d = %d\n", num1, num2, num1 + num2);
    printf("%d - %d = %d\n", num1, num2, num1 - num2);
    printf("%d * %d = %d\n", num1, num2, num1 * num2);
    printf("%d / %d = %d\n", num1, num2, num1 / num2);
    printf("%d %% %d = %d\n", num1, num2, num1 % num2);//return 0;
} 

上面代码中,①处使用printf函数打印%时,要注意:格式化字符串中的%具有转换功能的时候,需要这样表示:%%
当然,puts函数不具有转换说明功能,所以不用%%

[2-2]获取整数的最后一位

#include<stdio.h>

int main()
{
    int n;

    printf("请输入一个整数:");
    scanf("%d", &n);

    printf("%d", n%10);

    return 0;
}

[练习 2-1]:

#include<stdio.h>

int main()
{
    int a, b;

    puts("请输入两个整数:");

    printf("整数A:");
    scanf("%d", &a);

    printf("整数B:");
    scanf("%d", &b);

    printf("A的值是B的%.0f%%", (100.0)*a/b);

    return 0;
}

[2-3]:读取两个整数,并显示它们的商和余数

#include<stdio.h>

int main()
{
    int a, b;

    puts("请输入两个整数:");

    printf("整数A:");
    scanf("%d", &a);

    printf("整数B:");
    scanf("%d", &b);

    printf("A除以B等于%d%d\n", a/b, a%b);

    return 0;
}

[练习2-2]:

#include<stdio.h>

int main()
{
    int a, b;

    puts("请输入两个整数");

    printf("整数A:");
    scanf("%d", &a);
    printf("整数B:");
    scanf("%d", &b);

    printf("它们的和是:%d, 积是:%d\n", a+b, a*b);

    return 0;
}

2、单目运算符

[2-4]对读入的数据进行符号取反操作,并输出结果

#include<stdio.h>

int main()
{
    int num; 

    printf("请输入一个整数:");
    scanf("%d", &num);
    printf("符号取反后的值是:%d\n", -num);

    return 0;
}

+、 -、 !、 ~:统称为单目算术运算符
3、赋值运算符
这里讲“基本赋值运算符”:b = a;
第四章将会讲到“复合赋值运算符”
4、表达式和赋值表达式
(1)表达式:变量、常量、连接它们的运算符
(2)使用赋值运算符的表达式叫赋值表达式
tag = flag + 1(没有分号)—>其中,tag:赋值运算符的第一操作数,flag+1:第二操作数
5、表达式语句:表达式+分号
2-2 求平均数

[2-5]读取两个整数,求平均数

#include<stdio.h>

int main()
{
    int a, b;

    puts("请输入两个整数");

    printf("整数A:");
    scanf("%d", &a);
    printf("整数B:");
    scanf("%d", &b);

    printf("它们的平均数是:%d\n", (a+b)/2);

    return 0;
}

6、数据类型
(1)int类型
(2)double类型(%f浮点数:floating-point number,默认6位小数)
[2-6]对于定义两个不同数据类型的变量(初始化为9.99),以int和double两种类型输出结果

#include<stdio.h>

int main()
{
    int a;
    double b;

    a = 9.99;
    b = 9.99;

    printf("a = %d, a/2 = %d\n", a, a/2);
    printf("b = %f, b/2 = %f\n", b, b/2.0);

    return 0;
}

不同数据类型都有一些固有的属性,继承了这些属性而创建出来的
变量称为对象(object)

[2-7]:跟[2-1]比较,%:取余符号两侧都得是整数

#include<stdio.h>

int main()
{
    double num1, num2;

    puts("请输入两个整数:");

    printf("请输入num1:");
    scanf("%lf", &num1);
    printf("请输入num2:");
    scanf("%lf", &num2);

    printf("%f + %f = %f\n", num1, num2, num1 + num2);
    printf("%f - %f = %f\n", num1, num2, num1 - num2);
    printf("%f * %f = %f\n", num1, num2, num1 * num2);
    printf("%f / %f = %f\n", num1, num2, num1 / num2);

    return 0;
} 

注意:double类型的变量通过scanf函数赋值的时候需要使用格式字符串%lf

[练习2-3]:

#include<stdio.h>

int main()
{
    double num1;

    printf("请输入一个实数:");
    scanf("%lf", &num1);
    printf("%f", num1); 

    return 0;
} 

7、int/int —> int double/double —>double
Int/double 或者 double/int —>double(int 类型操作数会进行隐式类型转换,自动提升为double类型)

[2-8]:

int  n1 = 5/2;
int  n2 = 5.0/2.0;
int  n1 = 5.0/2;
int  n1 = 5/2.0;
--->n1==2恒成立
double  n1 = 5/2;
-->n1==2.000000
double  n1 = 5.0/2;
double  n1 = 5.0/2.0;
double  n1 = 5/2.0;
-->n1==2.500000恒成立

[2-9]:读取两个整数,求平均数(浮点数形式)

#include<stdio.h>

int main()
{
    int   a, b;

    puts("请输入两个整数");

    printf("整数A:");
    scanf("%d", &a);
    printf("整数B:");
    scanf("%d", &b);

    printf("它们的平均数是:%f\n", (a+b)/2.0);

    return 0;
}

跟[2-5]比较

[2-10]:读取两个整数,求平均数(实数:类型转换)

#include<stdio.h>

int main()
{
    int   a, b;

    puts("请输入两个整数");

    printf("整数A:");
    scanf("%d", &a);
    printf("整数B:");
    scanf("%d", &b);

    printf("它们的平均数是:%f\n",  (double)(a+b)/2);//①类型转换(显示转换,cast)

    return 0;
}

*():类型转换运算符(cast operator)
①处:表示为实数/整数*

[练习2-5]:跟[练习2-1]比较

#include<stdio.h>

int main()
{
    int a, b;

    puts("请输入两个整数:");

    printf("整数A:");
    scanf("%d", &a);

    printf("整数B:");
    scanf("%d", &b);

    printf("A的值是B的%f%%", (100.0)*a/b);

    return 0;
}   

8、转换说明

#include<stdio.h>

int main()
{
    int n1, n2, n3, sum;
    double ave;

    puts("请输入三个整数:");

    printf("整数1:");
    scanf("%d", &n1); 
    printf("整数2:");
    scanf("%d", &n2); 
    printf("整数3:");
    scanf("%d", &n3);

    sum =  n1+n2+n3;
    ave = (double)sum/3;

    printf("它们的合计数是:%5d\n", sum);
    printf("它们的平均数是:%5.1f\n", ave);

    return 0;
}

10、最小字段:

#include<stdio.h>

int main()
{
    printf("[%d]\n",       123);
    printf("[%.4d]\n",     123);
    printf("[%4d]\n",      123);
    printf("[%04d]\n",     123);
    printf("[%-4d]\n",     123);

    printf("[%d]\n",       12345);
    printf("[%.3d]\n",     12345);
    printf("[%3d]\n",      12345);
    printf("[%03d]\n",     12345);
    printf("[%-3d]\n",     12345);

    printf("[%f]\n",       123.13);
    printf("[%.1f]\n",     123.13);
    printf("[%6.1f]\n",    123.13);

    printf("[%f]\n",       123.13);
    printf("[%.1f]\n",     123.13);
    printf("[%4.1f]\n",    123.13);
    return 0;
} 

[练习2-6]:

#include<stdio.h>

int main()
{
    int height;
    double weight;

    printf("请输入您的身高:");
    scanf("%d", &height);

    weight = (height - 100)*0.9;
    printf("您的标准体重是:%.1f\n", weight);

    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值