пятница, 18 декабря 2009 г.

В целочисленном массиве определить количество и координаты перемен знака

#include <stdio.h>

#define N 10

int main(int argc, char *argv[])
{
    int m[N];
    int i;
    int change_count = 0;

    //инициализируем генератор случайных чисел
    srand(time(0));

    //инициализируем массив случайными числами от -5 до 5
    for (i = 0; i < N; i++) m[i] = rand() % 10 - 5;

    //выводим на экран исходный массив
    for (i = 0; i < N; i++) printf("%3d", m[i]);
    printf("\n");

    for (i = 1; i < N; i++)
    {
        if ((m[i-1] > 0 && m[i] < 0)
            || (m[i-1] < 0 && m[i] > 0)
            || (m[i-1] == 0 && m[i] != 0)
            || (m[i-1] != 0 && m[i] == 0))
        {
            printf("в позиции %d смена знака\n", i);
            change_count++;
        }
    }

    printf("количество изменений: %d\n", change_count);    
    

    return 0;
}

вывод:
2 -5 -4  2  4  0  2  2  0 -1
в позиции 1 смена знака
в позиции 3 смена знака
в позиции 5 смена знака
в позиции 6 смена знака
в позиции 8 смена знака
в позиции 9 смена знака
количество изменений: 6

Комментариев нет:

Отправить комментарий