可以用电脑做网站主机吗/投稿平台
给你一个整数数组nums,如果一组数字(i,j)满足 nums[i] == nums[j] 且 i < j,就可以认为这是一组好数对,然后返回好数对的数目。
算法分析:
1.要确认nums数组里的一组数字(i,j)是否相等,我们肯定会想到要运用双层循环,然后来进行判断;
2.要输出好数对的数目一定要定义一个计数器,这里定义count,判断相等则count ++。
代码如下:
//第一种方法 调用函数
#include <stdio.h>
int ArrPairs(int nums[], int numsSize)
{int count = 0;int j = 0;int i = 0;for (i = 0; i < numsSize; i++){ for (j = i + 1; j < numsSize; j++){if (nums[i] == nums[j]){count++; }}}return count;
}int main()
{int nums[100] = {0};int length = 0;printf("输入这组数的个数,然后依次输入这组数:\n");scanf("%d", &length);for (int i = 0; i < length; i++){scanf("%d", &nums[i]);}ArrPairs(nums, length);int a = ArrPairs(nums, length);//有返回值的函数一定要记得接收函数的返回值printf("%d \n", a);return 0;
}
//第二种方法
#include<stdio.h>
int main()
{int nums[100] = {0};int i = 0;int j = 1;int count = 0;int length = 0;printf("输入这组数的个数,然后依次输入这组数:\n");scanf("%d", &length);for (i = 0; i < length; i++){scanf("%d", &nums[i]);}for (i = 0; i < length; i++){ for (j = i + 1; j <= length - 1; j++){if (nums[i] == nums[j]){count++;}}}printf("好数对的个数为:%d \n", count);return 0;
}
运行截图如下: