1

私は次のコードを書きました。コードのこの部分をコンパイルすると、パズルを解いています

#include <stdio.h>
int main ()
{

int a[10],b[10],c[10];
int i,j,k,l;
 a[10]={"21","33","12","19","15","17","11","12","34","10"};
 b[10]={"10","15","9","13","16","21","15","32","29","7"};
 c[10]={"11","8","3","6","1","4","6","20","19","3"};

 l=sizeof(a)/sizeof(a[0]);

for (i=0;i<=l;i++)
 {
 }
}

私にエラーを与える

array.c: In function ‘main’:
array.c:7:8: error: expected expression before ‘{’ token
array.c:8:8: error: expected expression before ‘{’ token
array.c:9:8: error: expected expression before ‘{’ token

エラーがここに来るのはなぜですか?

4

4 に答える 4

6

あなたのコードにはいくつかの問題があります:

  1. 配列を宣言した同じ行で配列を初期化する必要があります
  2. c-string の配列ではなく、数値の配列で初期化する必要があります。
  3. 実際には、配列の 11 番目の要素に値を設定しようとしています。

正しいコード行は次のようになります。

int a[10] = {21,33,12,19,15,17,11,12,34,10};
于 2012-05-21T10:03:59.293 に答える
1

配列の11 番目の要素を配列に設定しています。

これを試して:

int a[10] = {21,33,12,19,15,17,11,12,34,10};
于 2012-05-21T10:03:56.983 に答える
0
  • タイプの不一致: 文字リテラル文字列をints に設定しています。これはノーノーです。

  • 配列の最後を超えて 1 つアクセスしています - 古典的な off-by-one エラーです。

于 2012-05-21T10:04:32.957 に答える
0

これは int 配列です

c[10]={11,8,3,6,1,4,6,20,19,3};
于 2012-05-21T10:04:47.943 に答える