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 字符串数组:
  3. 您实际上尝试将值设置为数组的第 11 个元素。

正确的代码行将是:

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

您正在将数组的第十一个元素设置为数组。

试试这个:

int a[10] = {21,33,12,19,15,17,11,12,34,10};
于 2012-05-21T10:03:56.983 回答
0
  • 类型不匹配:您将字符文字字符串设置为ints。这是一个禁忌。

  • 您正在访问数组末尾的一个 - 一个经典的一对一错误。

于 2012-05-21T10:04:32.957 回答
0

这是 int 数组,不要把 qoutes 放在数字上

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