2-1 运算
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.显示读取出的整数的最后一位数字。(灵活运用求余计算符)
#include <stdio.h>
int main(void)
{
int no;
printf("请输入一个整数:");
scanf("%d", &no);
printf("最后一位是%d。\n", no % 10);
return 0;
}
3.读取两个整数显示他们的商和余数。(多个转化说明)
#include <stdio.h>
int main(void)
{
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;
}
scanf函数也可:
scanf("%d%d",&a,&b); /*按顺序为a和b输入十进制数*/
4.读取两个整数,显示前者是后者的百分之几
#include<stdio.h>
int main(void)
{
int x;
int y;
puts("请输入两个整数。");
printf("整数x:");
scanf("%d",&x);
printf("整数y:");
scanf("%d",&y);
printf("x是y的%d%%。\n",100*x/y);
return 0;
}
5.单目运算符
/*
对读取的整数值进行符号取反操作,并输出结果
*/
#include <stdio.h>
int main(void)
{
int num;
printf("请输入一个整数:");
scanf("%d", &num); /* 读取整数值 */
printf("符号取反之后的值是%d。\n", -num); /* 单目-运算符 */
return 0;
}
2-2数据类型
1.读取两个整数,求他们的平均值
#include <stdio.h>
int main(void)
{
int a, b;
puts("请输入两个整数。");
printf("整数a:"); scanf("%d", &a);
printf("整数b:"); scanf("%d", &b);
printf("它们的平均值是%d。\n", (a + b) / 2);
return 0;
}
2.比较整数和浮点数
/*
整数和浮点数
*/
#include <stdio.h>
int main(void)
{
int n; /* 整数 */
double x; /* 浮点数 */
n = 9.99;
x = 9.99;
printf("int 型变量n的值:%d\n", n); /* 9 */
printf(" n / 2:%d\n", n / 2); /* 9 / 2 */
printf("double 型变量x的值:%f\n", x); /* 9.99 */
printf(" x/2.0:%f\n", x / 2.0); /* 9.99 / 2.0 */
return 0;
}
3.double类型的运算
/*
读取两个实数值,用实数显示出它们的和、差、积、商
*/
#include <stdio.h>
int main(void)
{
double vx, vy; /* 浮点数 */
puts("请输入两个数。");
printf("实数vx:"); scanf("%lf", &vx);
printf("实数vy:"); 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;
}
4.练习
#include<stdio.h>
int main(void)
{
double a;
printf("请输入一个实数:");
scanf("%lf",&a);
printf("你输入的是%f\n",a);
return 0;
}
5.数据类型和运算
/*
验证数据类型和运算
*/
#include <stdio.h>
int main(void)
{
int n1, n2, n3, n4; /* 整数 */
double d1, d2, d3, d4; /* 浮点数 */
n1 = 5 / 2; /* n1 ← 2 */
n2 = 5.0 / 2.0; /* n2 ← 2.5 (赋值时舍弃小数点以后的部分)*/
n3 = 5.0 / 2; /* n3 ← 2.5 (赋值时舍弃小数点以后的部分)*/
n4 = 5 / 2.0; /* n4 ← 2.5 (赋值时舍弃小数点以后的部分)*/
d1 = 5 / 2; /* d1 ← 2 */
d2 = 5.0 / 2.0; /* d2 ← 2.5 */
d3 = 5.0 / 2; /* d3 ← 2.5 */
d4 = 5 / 2.0; /* d4 ← 2.5 */
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", d4);
return 0;
}
6.1类型转换
/*
读取两个整数并用浮点数显示出它们平均值
*/
#include <stdio.h>
int main(void)
{
int a, b;
puts("请输入两个整数。");
printf("整数a:"); scanf("%d", &a);
printf("整数b:"); scanf("%d", &b);
printf("它们的平均值是%f。\n", (a + b) / 2.0);
return 0;
}
6.2 利用类型转化运算符:
/*
读取两个整数并用实数显示出它们的平均值(类型转换)
*/
#include <stdio.h>
int main(void)
{
int a, b;
puts("请输入两个整数。");
printf("整数a:"); scanf("%d", &a);
printf("整数b:"); scanf("%d", &b);
printf("它们的平均值是%f。\n", (double)(a + b) / 2); /* 类型转换 */
return 0;
}
7.
#include<stdio.h>
int main(void)
{
int x;
int y;
puts("请输入两个整数。");
printf("整数x:");
scanf("%d",&x);
printf("整数y:");
scanf("%d",&y);
printf("x是y的%f%%。\n",(double)100*x/y);
return 0;
}
8.转化说明*(难)*
/*
读取三个整数,并显示出它们的合计值和平均值
*/
#include <stdio.h>
int main(void)
{
int a, b, c;
int sum; /* 合计值 */
double ave; /* 平均值 */
puts("请输入三个整数。");
printf("整数a:"); scanf("%d", &a);
printf("整数b:"); scanf("%d", &b);
printf("整数c:"); scanf("%d", &c);
sum = a + b + c;
ave = (double)sum / 3; /* 类型转换 */
printf("它们的合计值是%5d。\n", sum); /* 输出99999 */
printf("它们的平均值是%5.1f。\n", ave); /* 输出999.9 */
return 0;
}
/*
格式化整数和浮点数并显示
*/
#include <stdio.h>
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;
}
#include<stdio.h>
int main(void)
{
int height;
printf("请输入您的身高:");
scanf("%d",&height);
printf("您的标准体重是%.1f公斤。\n",(height-100)*0.9);
return 0;
}
Summary
/*
第2章总结
*/
#include <stdio.h>
int main(void)
{
int a;
int b;
double r; /* 半径 */
printf("整数a和b的值");
scanf("%d%d", &a, &b);
printf("a + b = %d\n", a + b); /* 加法运算:双目+运算符 */
printf("a - b = %d\n", a - b); /* 减法运算:双目-运算符 */
printf("a * b = %d\n", a * b); /* 乘法运算:双目*运算符 */
printf("a / b = %d\n", a / b); /* 商:/ 运算符 */
printf("a %% b = %d\n", a % b); /* 余数:% 运算符 */
printf("(a+b)/2 = %d\n", (a + b) / 2);
printf("平均值 = %f\n\n", (double)(a + b) / 2);
printf("半径");
scanf("%lf", &r);
printf("半径为%.3f的圆的面积是%.3f。\n", r, 3.14 * r * r);
return 0;
}