幫助:一種用於確定二維陣列的行和列元素是否都不相等的演算法

發布 科技 2024-08-17
15個回答
  1. 匿名使用者2024-02-01

    #include

    #include

    void main()

    int i,j,a[3][3], flag = 1;

    qwe: for(i=0;i<3;i++)for(j=0;j<3;j++)

    a[i][j]=rand()%3+1;隨機生成 3*3 陣列標誌 = 1;

    for(i = 0; i < 3 &&flag == 1;我++)第一行的三個要素。

    if(a[i][0] == a[i][1] |a[i][0] == a[i][2] |a[i][1] == a[i][2])

    flag = 0;如果任意兩個元素相同,則將標誌分配給 0 列 i,並檢視所有三個元素是否都不同。

    if(a[0][i] == a[1][i] |a[0][i] == a[2][i] |a[1][i] == a[2][i])

    flag = 0;如果任意兩個元素相同,則將標誌分配給 0if(flag != 0)

    如果滿足條件,則輸出乙個陣列。

    for(i=0;i<3;i++)

    for(j=0;j<3;j++)

    printf("%2d",a[i][j]);

    printf("");

    else goto qwe;如果不滿足這些條件,則重新生成陣列的返回實際上只有一組解決方案。

  2. 匿名使用者2024-01-31

    這很簡單。 確定每行的值之和為 6,並將其輸出為每列的 6。

    int xx=0;

    for (i=0;i<3;i++)

    s=0;for (j=0;j<3;j++)s+=a[i][j];

    if (j!=6) xx=1;

    如果 xx==0 輸出。

    沒有結果就說明條件不滿足,在外面加乙個迴圈,只要沒有輸出,就繼續執行。

  3. 匿名使用者2024-01-30

    三樓的隨機數生成有點問題。

    新增。 包括標頭檔案。

    srand((int)time(0));放在 rand() 前面。

  4. 匿名使用者2024-01-29

    最簡單的演算法:確定陣列中的所有元素是否都等於第乙個元素。 如果所有元素都等於第乙個元素,那麼由於等號的傳遞性,自然而然地所有元素都是相等的。

    假設這個陣列是。

    int x[100];

    總共有100個元素,所以判斷語可以這樣寫:

    int flag = 0;標誌指示是否遇到不相等的元素。

    int i;

    for (i = 1; i < 100; i++)if (flag == 1) else

  5. 匿名使用者2024-01-28

    我的思路是經歷它,不知道是否有更好的東西。

  6. 匿名使用者2024-01-27

    最簡單的方法是遞迴排序,如果遇到相同的,則返回 0,否則比較 16*15 次,如果沒有相等的,則返回 1。 幾行**就可以了。 當然,這也是最慢的方式。

  7. 匿名使用者2024-01-26

    因為要求都是一樣的,我們可以比較a[0][0]作為(i=0; i<4;i++)

    for(j=0;j<4;j++)

    if(i==4 &&j==4)

    t=1;((t 是直線返回。

  8. 匿名使用者2024-01-25

    C++可以嗎? 如果使用 C++,則更簡潔,如果使用 vector 而不是陣列,則看起來會更令人耳目一新。 演算法複雜度 o(n*logn)。

    #include

    #include

    using namespace std;

    int main()

    int back[4][4];

    int * p;}

  9. 匿名使用者2024-01-24

    使用集合儲存元素,當你遍歷每一行元素時,你發現該元素存在於集合中,這意味著存在重複,否則你會將這個元素新增到集合中。

  10. 匿名使用者2024-01-23

    這需要使用乙個雙迴圈,每個外部迴圈掃瞄除最後乙個元素之外的每個元素,以及掃瞄當前元素後面的每個元素直到最後以檢視是否有任何重複的內迴圈。

  11. 匿名使用者2024-01-22

    一維陣列具有相同的值,但在矩陣的情況下,行列式。

    等型別,使用二維的更方便。 至於字元陣列,它只是意味著儲存在其中的元素是字元。

    請注意,,} 中的 1,2,3 具有 {},這意味著每行中的第乙個元素是 1、2、3其餘元素(如 a[1[2]、a[2][2] 等)預設為 0。 而 b[3][3]=這只是乙個 {},它包含 4、5 和 6。

    這意味著 b[0][0]、b[0][1]、b[0][2] 是 4、5、6其餘的都是 0。

    strcat(s1,s2) 是第二個字串。

    在第乙個字串之後複製它並將其拼寫為字串。 複製完成後,將新增該函式'\0'指示字串的末尾。 因此,在 strcat(s1,s2) 之後,實際結果是 123abcde 0

    用 strlen 取長度,自然是 8。

  12. 匿名使用者2024-01-21

    最直接的方法是呼叫函式,將陣列作為引數傳遞,然後在函式中定義變數標誌作為標誌,以迴圈遍歷二維陣列。

    如果陣列元素為 1,則將標誌設定為 1 以繼續掃瞄,否則將其設定為 0 並退出迴圈。

    如果標誌為 1,則表示所有陣列元素均為 1,否則並非全部為 1

  13. 匿名使用者2024-01-20

    因為在C語言中,陣列名稱的本質是陣列的第乙個位址。 在 main 函式中呼叫 trmul 函式的句子。

    trmul(a,b,4,5,3,c);

    表示陣列 a

    bc 的第乙個位址作為函式的引數給出。

    voidtrmul(

    a,b,m,n,k,c)

    intm,n,k;

    double

    a,b,c;Ab 這裡

    c向上。 讓我們以第乙個陣列為例:

    在 main 函式中,a 是兩位陣列名,a 是具有 20 個元素的兩位陣列的第乙個位址,呼叫函式時為 trmul(a,b,4,5,3,c);

    a 的值(20 個元素的第乙個位址)作為函式的引數提供給相應的形式引數。

    voidtrmul(

    a,b,m,n,k,c)

    intm,n,k;

    double

    a,b,c;

    這裡有很多。 因為子函式中的 a 是一維陣列名稱(本質上是指標變數。

    陣列名稱仍然是陣列的第乙個位址),所以從子函式的角度來看,main 函式中的 20 個元素是乙個有 20 個元素的一維陣列,當然它們也可以看作是 4 行 5 列的元素。

    希望對你有所幫助。

  14. 匿名使用者2024-01-19

    for(i=0;i<6;i++)

    這不能再使用 i、to j。

    你的演算法不好,可以初始化陣列 narray[8][8],第 7 行 7 列儲存最小值,第 8 行 8 列儲存位置。

    然後掃瞄矩陣,相應地修改每個元素narray[i][j]每行和每列的最小值和位置,最後比較位置是否相同。

    這樣的複雜度是 o(n 2)。

  15. 匿名使用者2024-01-18

    可以使用陣列的 indexof 函式 method, start);find:你要找的內容,它必須; start:找到開始下標,可選; 返回:

    找到資料所在的下標,如果找不到,則返回-1 如果只知道有沒有數字8,則直接呼叫,如果返回。

相關回答
21個回答2024-08-17

交錯陣列是具有陣列元素的陣列。 交錯陣列元素的維度和大小可能不同。 交錯陣列有時被稱為“陣列中的陣列”。 >>>More

12個回答2024-08-17

大多數語言都以類似的方式使用陣列,具有迴圈流控制。 >>>More

5個回答2024-08-17

呵呵,樓上不懂C++

修改以下更改:包括 >>>More

19個回答2024-08-17

二維陣列實際上是陣列的陣列,因此指向二維陣列的指標是指向陣列的指標。 考慮到這一點,選擇返回型別很簡單。 >>>More

16個回答2024-08-17

樓上是什麼,我真的受不了了,是乙個簡單的問題,很複雜。 >>>More