查找數組中的重復元素


通過c語言自定義數組長度

能夠識別出多個重復的數據,將其輸出並返回下標

時間復雜度O(n^2)

使用雙重循環查找,找到直接break,注意break和continue的區別

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>

int main(void)
{
    int *a;
    int n;
    scanf("%d",&n);
    a=(int*)malloc(sizeof(int)*(n));
    for(int i=0;i<n;++i)
        scanf("%d",&a[i]);
    for(int i=0;i<n-1;++i)
        for(int j=i+1;j<n;++j)
            if(a[i]==a[j])
            {
                printf("find number %d ,locate %d\n",a[i],j);
                break;
            }
    /*
    for(int i=0;i<n;++i)
        printf("%d ",a[i]);
    printf("\n");
    */
    system("pause");
    return 0;
}

之前在申請內存的時候直接用(int*)malloc(sizeof(n));當申請的內存超過10的時候會出現堆的溢出錯誤,因為申請的內存是錯誤的,無法容納大於10的數組

改為(int*)malloc(sizeof(int)*(n));之后就解決了這個問題,二維數組的動態申請也是同理。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM