兩種方法 求“ 好數對 ”的數量
阿新 • • 發佈:2020-12-10
給你一個整數陣列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;
}
執行截圖如下: