c语言如何判断两数相差不超过5
时间: 2024-09-18 20:16:31 浏览: 33
在C语言中,你可以通过比较两个整数的差值绝对值是否小于等于5来判断它们相差是否不超过5。下面是一个简单的函数示例:
```c
#include <stdio.h>
int checkDifference(int num1, int num2) {
int difference = abs(num1 - num2); // 使用abs()函数计算差值的绝对值
return (difference <= 5); // 如果差值绝对值小于等于5,返回1(真),否则返回0(假)
}
int main() {
int a, b;
printf("请输入两个整数: ");
scanf("%d %d", &a, &b);
if (checkDifference(a, b)) {
printf("两数相差不超过5。\n");
} else {
printf("两数相差超过5。\n");
}
return 0;
}
```
在这个例子中,`checkDifference()` 函数接受两个整数作为输入,计算它们的差并检查这个差的绝对值是否小于等于5。如果条件成立,则在主函数中显示相应的消息。
相关问题
c语言编制程序,输入某班10名学生数学考试成绩,统计并输出全班的平均成绩和与平均分相差不超过5分(包括5分)的学生人数。 【输入描述】 输入10名学生的成绩。 【输出描述】 先输出全班的平均成绩(保留两位小数),然后输出与平均分相差不超过5分(包括5分)的学生人数,之间用一个半角空格间隔。
以下是 C 语言的程序实现:
```c
#include <stdio.h>
#include <math.h>
int main() {
// 定义变量
int i, count = 0;
float sum = 0, avg, score[10];
// 输入成绩
for (i = 0; i < 10; i++) {
scanf("%f", &score[i]);
sum += score[i];
}
// 计算平均分
avg = sum / 10;
printf("平均成绩为:%.2f\n", avg);
// 统计与平均分相差不超过5分的学生人数
for (i = 0; i < 10; i++) {
if (fabs(score[i] - avg) <= 5) {
count++;
}
}
// 输出学生人数
printf("与平均分相差不超过5分的学生人数为:%d\n", count);
return 0;
}
```
程序运行时,需要输入 10 名学生的成绩,程序会自动计算全班的平均分,并统计与平均分相差不超过 5 分的学生人数,最后输出结果。
编程读入若干整数(不超过50个)到数组中,然后倒序输出,遍历数组时用指针实现。 输入样例: 1 5 25 18 -299 输出样例: -299 18 25 5 1用C语言
以下是实现该功能的C代码:
```c
#include <stdio.h>
int main() {
int nums[50];
int n = 0;
int *p;
// 读入整数到数组中
while (scanf("%d", &nums[n]) == 1) {
n++;
if (n >= 50) {
break;
}
}
// 倒序输出数组
printf("倒序输出数组:\n");
for (p = nums + n - 1; p >= nums; p--) {
printf("%d ", *p);
}
printf("\n");
return 0;
}
```
首先定义一个长度为50的整型数组 `nums` 和一个整数变量 `n`,用来记录读入的整数个数。
然后使用 `scanf` 函数循环读入整数,每读入一个整数就将 `n` 加1。如果读入的整数个数超过50,则退出循环。
接下来使用指针 `p` 遍历数组,从最后一个元素开始遍历,依次输出数组中的元素。
需要注意的是,指针的初始值应该是 `nums + n - 1`,也就是指向数组最后一个元素的地址。因为数组下标从0开始,所以最后一个元素的下标为 `n - 1`。指针 `p` 每次循环时应该减1,因为数组是连续存储的,每个元素的地址相差4个字节(在32位系统上),所以 `p - 1` 表示指向前一个元素的地址。
最后输出一个换行符,让输出结果更美观。