第2章 运算和数据类型
示例代码:
示例代码 2-1
/*
读取两个整数的值,然后显示出它们的和、差、积、商和余数
*/
#include <stdio.h>
int main(void)
{
int vx, vy;
puts("请输入两个整数。");
printf("整数vx:"); scanf("%d", &vx);
printf("整数vy:"); scanf("%d", &vy);
printf("vx + vy = %d\n", vx + vy);
printf("vx - vy = %d\n", vx - vy);
printf("vx * vy = %d\n", vx * vy);
printf("vx / vy = %d\n", vx / vy);
printf("vx %% vy = %d\n", vx % vy);
return (0);
}
示例代码 2-2
/*
显示读取出的整数的最后一位数字
*/
int main(void)
{
int no;
printf("请输入一个整数:");
scanf("%d", &no);
printf("最后一位是%d。\n", no % 10);
return (0);
}
示例代码 2-3
/*
读取两个整数,显示它们的商和余数
*/
#include <stdio.h>
int main(void)
{
int na, nb;
puts("请输入两个整数。");
printf("整数A:"); scanf("%d", &na);
printf("整数B:"); scanf("%d", &nb);
printf("A除以B得%d余%d。\n", na / nb, na % nb);
return (0);
}
示例代码 2-4
/*
对读取的整数值进行符号取反操作,并输出结果
*/
#include <stdio.h>
int main(void)
{
int num;
printf("请输入一个整数:");
scanf("%d", &num);
printf("符号取反之后的值是%d。\n", -num); // 单目运算符
return (0);
}
示例代码 2-5
/*
读取两个整数,显示出它们的平均值
*/
int main(void)
{
int na, nb;
puts("请输入两个整数。");
printf("整数A:"); scanf("%d", &na);
printf("整数B:"); scanf("%d", &nb);
printf("它们的平均值是%d。\n", (na + nb) / 2);
return(0);
}
示例代码 2-6
/*
整数和浮点数
*/
#include <stdio.h>
int main(void)
{
int nx; // 整数
double dx; // 浮点数
nx = 9.99;
dx = 9.99;
printf("int 型变量nx的值:%d\n", nx); // 9
printf(" nx / 2:%d\n", nx / 2); // 9 / 2
printf("double型变量dx的值:%f\n", dx); // 9.99
printf(" dx / 2.0:%f\n", dx / 2.0); // 9.99 / 2.0
return (0);
}
示例代码 2-7
/*
读取两个实数值,用实数表示出它们的和、差、积、商
*/
#include <stdio.h>
int main(void)
{
double vx, vy; // 浮点数
puts("请输入两个数。");
printf("实数A:"); scanf("%lf", &vx);
printf("实数B:"); scanf("%lf", &vy);
printf("vx + vy = %f\n", vx + vy);
printf("vx - vy = %f\n", vx - vy);
printf("vx * vy = %f\n", vx * vy);
printf("vx / vy = %f\n", vx / vy);
return (0);
}
示例代码 2-8
/*
验证数据类型和运算
*/
#include <stdio.h>
int main(void)
{
int n1, n2, n3, n4; // 整数
double d1, d2, d3, d4; // 浮点数
n1 = 5 / 2;
n2 = 5.0 / 2.0;
n3 = 5.0 / 2;
n4 = 5 / 2.0;
d1 = 5 / 2;
d2 = 5.0 / 2.0;
d3 = 5.0 / 2;
d4 = 5 / 2.0;
printf("n1 = %d\n", n1);
printf("n2 = %d\n", n2);
printf("n3 = %d\n", n3);
printf("n4 = %d\n\n", n4);
printf("d1 = %f\n", d1);
printf("d2 = %f\n", d2);
printf("d3 = %f\n", d3);
printf("d4 = %f\n\n", d4);
return (0);
}
示例代码 2-9
/*
读取两个整数并用浮点数显示出它们的平均值
*/
int main(void)
{
int na, nb;
puts("请输入两个整数。");
printf("整数A:"); scanf("%d", &na);
printf("整数B:"); scanf("%d", &nb);
printf("它们的平均值是%f。\n", (na + nb) / 2.0);
return(0);
}
示例代码 2-10
/*
读取两个整数并用实数显示出它们的平均值(类型转换)
*/
int main(void)
{
int na, nb;
puts("请输入两个整数。");
printf("整数A:"); scanf("%d", &na);
printf("整数B:"); scanf("%d", &nb);
printf("它们的平均值是%f。\n", (double)(na + nb) / 2); // 类型转换
return(0);
}
示例代码 2-11
/*
读取三个整数,并显示出它们的合计值和平均值
*/
int main(void)
{
int na, nb, nc;
int sum; // 合计值
double ave; // 平均值
puts("请输入三个整数。");
printf("整数A:"); scanf("%d", &na);
printf("整数B:"); scanf("%d", &nb);
printf("整数C:"); scanf("%d", &nc);
sum = na + nb + nc;
ave = (double)sum / 3; // 类型转换
printf("它们的合计值是%5d。\n", sum); // 99999
printf("它们的平均值是%5.1f。\n", ave); // 999.9
return(0);
}
示例代码 2-12
/*
格式化整数和浮点数并显示
*/
int main(void)
{
printf("[%d]\n", 123);
printf("[%.4d]\n", 123);
printf("[%4d]\n", 123);
printf("[%04d]\n", 123);
printf("[%-4d]\n\n", 123);
printf("[%d]\n", 12345);
printf("[%.3d]\n", 12345);
printf("[%3d]\n", 12345);
printf("[%03d]\n", 12345);
printf("[%-3d]\n\n", 12345);
printf("[%f]\n", 123.13);
printf("[%.1f]\n", 123.13);
printf("[%6.1f]\n\n", 123.13);
printf("[%f]\n", 123.13);
printf("[%.1f]\n", 123.13);
printf("[%4.1f]\n\n", 123.13);
return(0);
}
练习代码 :
练习代码 e2-1
/*
读取两个整数,显示前者是后者的百分之几
*/
int main(void)
{
int n1, n2;
puts("请输入两个整数。");
printf("整数A:"); scanf("%d", &n1);
printf("整数B:"); scanf("%d", &n2);
printf("A的值是B的%d%%。\n", n1 *100 / n2);
return (0);
}
练习代码 e2-2
/*
读取两个整数,输出它们的和以及积
*/
#include <stdio.h>
int main(void)
{
int na, nb;
puts("请输入两个数。");
printf("整数A:"); scanf("%d", &na);
printf("整数B:"); scanf("%d", &nb);
printf("它们的和是%d,积是%d。\n", na + nb, na * nb);
return (0);
}
练习代码 e2-3
/*
读取并显示一个实数的值
*/
#include <stdio.h>
int main(void)
{
double no;
printf("请输入一个实数:");
scanf("%lf", &no);
printf("你输入的是%f。\n", no);
return (0);
}
练习代码 e2-4
/*
对整型常量、浮点型常量、int型变量和double型变量进行乘除等各种运算
*/
int main(void)
{
int a, b;
double x, y;
a = 2;
b = 3;
x = 0.2;
y = 0.3;
printf("a + b = %d\n", a + b);
printf("a + x = %f\n", a + x);
printf("x + y = %f\n", x + y);
return (0);
}
练习代码 e2-5
/*
读取两个整数的值,计算出前者是后者的百分之几,实数输出结果
*/
int main(void)
{
int a, b;
puts("请输入两个整数。");
printf("整数A:"); scanf("%d", &a);
printf("整数B:"); scanf("%d", &b);
printf("A是B的%f%%。\n", (double)a / b * 100);
return (0);
}
练习代码 e2-6
/*
输入身高的整数值,显示出标准体重的实数值。
*/
int main(void)
{
int height;
double weight;
printf("请输入您的身高:"); scanf("%d", &height);
printf("您的标准体重是%.1f公斤。\n", (height - 100) * 0.9);
return (0);
}