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;
}