在c程序中添加0作为最后一个值

时间:2013-04-16 13:21:44

标签: c arrays

我在c中做了一个小程序,一切都运行得很好但是在一个过程中我必须为数组分配一些值,但我希望最后一个值自动为0

printf("cantidad de valores codificados a ingresar "); /*amount of values to enter*/
scanf("%d",&l);

printf("\ningrese los valores a decodificar: "); /*entering values*/

for(i=0;i<l;++i) {
    scanf("\n%d ",&c[i]);
}

2 个答案:

答案 0 :(得分:2)

您需要在scanf读取的元素之后为元素指定0:

for(i=0;i<l;++i) {
    scanf("%d",&c[i]);
}
c[i] = 0;

你已经在循环之前声明了i,所以没关系。确保i不大于数组c的大小。因此,假设c被定义为,例如:

int c[100];

在您读入l的值后,您应该检查它是否不大于数组的大小:

scanf("%d",&l);
if (l + 1 > sizeof(c) / sizeof(int)) // one extra for the 0
{
  fprintf(stderr, "Too many values, I don't have this much space...");
  exit(1);
}

但最好动态分配数组c

scanf("%d",&l);
int* c = (int*) malloc(sizeof(int) * (l + 1));

答案 1 :(得分:0)

for(i=0;i<l;++i){
   scanf("\n%d ",&c[i]);
}

c[l] = 0;