Ошибка при работе с массивами

Рейтинг: 0Ответов: 1Опубликовано: 25.02.2011
#include <stdio.h>
#include <stdlib.h>

void main()
{
    int i;
    float ost, a[6], b[6];

    for (i = 0; i < 7; i++) {
        printf("A[%i] = ", a[i]);
        scanf("%f", a[i]);
    }
    for (i = 0; i < 7; i++) {
        ost = a[i] % 2;
        if (ost == 1) {
            b[i] = ln(i + 1.5) * -1;
        } else {
            b[i] = ln(i + 1.5);
        }
    }
}

Ответы

▲ 3

При индексации массивов лучше использовать оператор sizeof:

for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
}

При вызове функции scanf нужно передавать адрес переменной, в которую нужно писать:

scanf("%f", &a[i]);

Оператор взятия модуля % применяется к целым числам:

ost = (int)a[i] % 2;