Cでの奇妙な行列配列の動作

ハカンアルプス

Matrix Arrayのゼロを1にして印刷するために使用した、いくつかのコードがあります。私は最初に40から1を作成していますが、2番目のループの配列に51があると表示されます。それを理解できませんでした。私のコードの何が悪いのか説明してもらえますか?御時間ありがとうございます

#include <stdio.h> 
main(){ 

    int n;

    printf("Desenin buyuklugunu giriniz: "); 
    scanf("%d",&n);

    int satirlar[n][n]= {0}; 

    int i=0, j=n-1; 
    while(i<(n/2) && j>n/2) { 
        satirlar[i][j] = 1; 
        i++;
        j--;
    }

    for(int i=0; i< n; i++) {
        for(int j=0; j< n; j++) {

            if(satirlar[i][j] == 1) {   
                printf("*");
            }
            else printf("k");
        }
    printf("\n");
    }
}

ループが何回機能したかを確認するために「k」を出力します。このような出力が得られます。

kkkk

エリック・ポストピシル

あなたは完全なプログラムを示していないので、私たちはあなたのプログラムが実際に何であるかを推測しなければなりません。int arr[9][9];関数内で宣言したようです。その場合、それは初期化されず、その要素の値は不確定です。それらはゼロかもしれません。彼らはそうではないかもしれません。それらは使用ごとに変わるかもしれません。

配列を初期化するには、定義をに変更しますint arr[9][9] = { 0 };

配列が可変長配列として定義されている場合は、定義の直後に配列全体をゼロに設定するループを記述します。

…
int array[n][n];
for (int i = 0; i < n; ++i)
    for (int j = 0; j < n; ++j)
        arr[i][j] = 0;

または、選択した要素を1に設定し、他の要素を0に設定するループを記述します。

for (int i = 0; i < n; ++i)
    for (int j = 0; j < n; ++j)
        arr[i][j] = i == j && i < n/2 ? 1 : 0;

既存のループテストでは、i<(n/2) & j>n/2仕事に起こるが、Cでこれを表現する従来の方法は次のようになりi < n/2 && j > n/2「&&ので、is for the Boolean AND of two expressions, whileis for the bitwise AND of two integers. Additionally, there seems to be little point in testing bothI andj`。ループが記述されているので、将来のコードリビジョンでループが非正方行列を処理することを意図していない限り、ループを制御するにはそのうちの1つだけをテストするだけで十分です。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

C配列での奇妙な動作

分類Dev

C ++の奇妙な配列の動作

分類Dev

Matlab配列での奇妙な動作

分類Dev

大きな配列でのC ++ / CUDAの奇妙な動作

分類Dev

C#配列とRandom.NextDouble()での奇妙な動作

分類Dev

文字列比較C ++での奇妙な動作

分類Dev

Cで文字列配列の要素を出力するときの奇妙な動作

分類Dev

Javaの奇妙な配列の動作

分類Dev

C の文字列配列の奇妙な動作

分類Dev

Cの文字列の配列、奇妙な動作

分類Dev

膨大な配列を持つCodePenでの奇妙なJavaScriptの動作

分類Dev

PHP連想配列の奇妙な動作

分類Dev

配列のリストでのContains()の奇妙な動作

分類Dev

Javascript / ReactNativeでの奇妙な配列の動作

分類Dev

状態更新後の配列マップでの奇妙な動作

分類Dev

配列NodeJS / CronでのforEachの奇妙な動作

分類Dev

C#LinqJSONネストされた配列の奇妙な動作

分類Dev

C#の奇妙な文字列の動作?

分類Dev

javascriptで配列を作成するときの奇妙な動作

分類Dev

Typescript配列プッシュ、console.logでの奇妙な動作

分類Dev

静的char配列と動的char配列の奇妙な動作

分類Dev

C ++でのoperator =の奇妙な動作

分類Dev

numpy行列要素でのmatplotlibプロットの奇妙な動作

分類Dev

c ++ ioでの奇妙な動作

分類Dev

C ++での奇妙な参照動作

分類Dev

Cで動的に割り当てられた2D文字配列を埋める際の奇妙な動作

分類Dev

Cで「文字列」を返すときの奇妙な動作

分類Dev

C ++ ostringstreamの奇妙な動作

分類Dev

C ++の奇妙な動作VisualStudio

Related 関連記事

ホットタグ

アーカイブ