вход для массива не сканируется / отсутствует - PullRequest
0 голосов
/ 05 декабря 2018

вход: 8 (2 5 6 9 10 2 7 4) ожидаемый результат: (2 7 9 9 12 5 7 6) реальный результат: (2 7 9 9)

это для моего колледжаи мой первый раз спрашиваю здесь.Не знаю почему, но 10 не отсканировано, какая-нибудь помощь?

#include <stdio.h>
int main ()
{
int a = 0, b = 0, c = 0, a_u[a], a_s[a];
printf("jumlah inputan : ");
scanf("%d", &a);

printf("\nmasukkan bilangan : ");

for(b = 0; b < a; b++) {
    scanf("%d", &a_u[b]);
}

printf ("\n");
for(b = 0; b < a; b++) {
    if (b % 3 == 0){
        a_s[b] = a_u[b];
    }
    else if (b % 3 == 1){
        a_s[b] = a_u[b] + 2;
    }
    else if (b % 3 == 2) {
        a_s[b] = a_u[b] + 3;
    }
}

for(b = 0; b < a; b++) {
    printf("%d ", a_s[b]);
}
}

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Посмотрите на ваши массивы.В строке 4 2 массива, которые вы определили, a_u и a_s будут иметь размер "0" , что не является разумным решением.Это также может привести к неопределенному поведению, ведущему к изменению исполнения.Я не понимаю смысла такого заявления.

0 голосов
/ 05 декабря 2018

Здесь есть проблема:

int a = 0, b = 0, c = 0, a_u[a], a_s[a];

Ваши массивы a_u и a_s имеют переменную длину.Массивы переменной длины не обязательно являются стандартными C (вам, вероятно, нужен хотя бы компилятор C99, чтобы воспользоваться этой возможностью).Но давайте пока предположим, что ваш компилятор поддерживает его.

Что более важно, вы использовали значение a, равное 0, в качестве размера этих массивов.

Это означает, чточто любой код, обращающийся к a_u или a_s, будет демонстрировать неопределенное поведение .

...