2
int masivs[row][col],i,j,n,choice,r,c;

system("cls");
srand(time(NULL));
printf("Darba autors Einars Ozols\n");
printf("Sakummasive aizpilde \n");
printf("Kadu masivu izveidot?\n Ja 5*10 spied 1 \n Ja 4*11 spied 2");
scanf("%d", &choice);
if (choice==1)
r=5&&c=10;

エラーは行 r=5&&c=10; にあります。別の方法でそれを書く方法は?

4

2 に答える 2

6
r=5&&c=10;  

r = (5&&c) = 10どちらかが または である0 = 10ことを意味 します1 = 10

説明: この理由は、&&演算子の優先順位がしたがっての優先順位よりも高く、最初に演算子にバインドされる=ためです。バインド後、この式は次のようになります 5c&&

r=(5&&c)=10;   

これはどちらかと同等です

r= 0 =10;   

また

r= 1 =10;  

いずれかの式の背後にある理由は、 (そうであるかどうかにかかわらず)の値に応じて、またはの5 && cいずれかを返すことです。 OPのコメント通り truefalsec0

r=5 と c=10 の配線方法

これを次のように行うことができます

if (choice==1)
{
    r = 5;
    c = 10;
}   
于 2013-10-02T17:41:59.677 に答える
1
if (choice==1)
{
    r = 5;
    c = 10;
}

空白の分布の小さなバリエーションを除いて、難読化しようとしていない場合は、これが唯一の書き込み方法です。

于 2013-10-02T18:07:07.807 に答える