给定n个整数,问这些数中有多少对整数,它们的值正好相差1,用c语言写出代码
时间: 2024-04-29 18:27:10 浏览: 18
以下是C语言的代码实现:
```c
#include <stdio.h>
#define MAXN 100
int main() {
int n, a[MAXN];
scanf("%d", &n);
for(int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
int cnt = 0;
for(int i = 0; i < n; i++) {
for(int j = i + 1; j < n; j++) {
if(a[i] - a[j] == 1 || a[j] - a[i] == 1) {
cnt++;
}
}
}
printf("%d\n", cnt);
return 0;
}
```
解释:首先读入n个整数,存储到数组a中,然后用两个循环遍历所有的数对,统计数值差为1的数对个数。最终输出这个个数即可。
相关问题
给定n个不同的整数,求这些数中有多少对整数的值差1用c++怎么表示
要求的问题可以用以下的C语言代码表示:
```c
int countPairs(int arr[], int n) {
int count = 0;
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (arr[i] == arr[j] - 1 || arr[i] == arr[j] + 1) {
count++;
}
}
}
return count;
}
```
其中,arr是存储所有整数的数组,n是这个数组的长度。该函数会计算arr中所有值差1的整数对,并返回它们的数量。
用C语言写给定n个正整数,统计奇数和偶数各多少个
```
#include <stdio.h>
int main() {
int n, num, odd_count = 0, even_count = 0;
printf("请输入正整数的个数:");
scanf("%d", &n);
printf("请输入%d个正整数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &num);
if (num % 2 == 0) {
even_count++;
} else {
odd_count++;
}
}
printf("奇数个数:%d\n", odd_count);
printf("偶数个数:%d\n", even_count);
return 0;
}
```