1. 程式人生 > 其它 >兩種方法 求“ 好數對 ”的數量

兩種方法 求“ 好數對 ”的數量

技術標籤:C練習陣列函式呼叫

給你一個整數陣列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; }

執行截圖如下:
在這裡插入圖片描述