LINUX.ORG.RU

История изменений

Исправление imul, (текущая версия) :

:( ну вот зачем ты решение дал? Обломал азарт.
Я правда первоначально все ограничения проигнорировал и сделал для дабла:

#include <stdio.h>
#include <math.h>
void main (void) {
    double m[] = {0,1,2,3,2,3,4,1,1,1,2,3,4,5,6,7};
    for (int i = 0; i < sizeof(m)/sizeof(double); i++) {
	for (int j = i + 1; j < sizeof(m)/sizeof(double); j++)
	    if (m[i] == m[j]) m[j]=NAN;
	if (!isnan(m[i])) printf("%lf\n", m[i]);
    }
}

Потом когда ты уточнил про идущие подряд, то добавил ещё строчку
#include <stdio.h>
#include <math.h>
void main (void) {
    double m[] = {0,1,2,3,2,3,4,1,1,1,2,3,4,5,6,7};
    for (int i = 0; i < sizeof(m)/sizeof(double); i++) {
	for (int j = i + 1; j < sizeof(m)/sizeof(double); j++)
	    if (m[i] == m[j]) m[j]=NAN;
	    else break; // <--- вот эту
	if (!isnan(m[i])) printf("%lf\n", m[i]);
    }
}

С даблами массив не надо «компрессить» и не нужно лишних переменных.

Исправление imul, :

:( ну вот зачем ты решение дал? Обломал азарт.
Я правда первоначально все ограничения проигнорировал и сделал для дабла:

#include <stdio.h>
#include <math.h>
void main (void) {
    double m[] = {0,1,2,3,2,3,4,1,1,1,2,3,4,5,6,7};
    for (int i = 0; i < sizeof(m)/sizeof(double); i++) {
	for (int j = i + 1; j < sizeof(m)/sizeof(double); j++)
	    if (m[i] == m[j]) m[j]=NAN;
	if (!isnan(m[i])) printf("%lf\n", m[i]);
    }
}

Потом когда ты уточнил про идущие подряд, то добавил ещё строчку
#include <stdio.h>
#include <math.h>
void main (void) {
    double m[] = {0,1,2,3,2,3,4,1,1,1,2,3,4,5,6,7};
    for (int i = 0; i < sizeof(m)/sizeof(double); i++) {
	for (int j = i + 1; j < sizeof(m)/sizeof(double); j++)
	    if (m[i] == m[j]) m[j]=NAN;
	    else break; // <--- вот эту
	if (!isnan(m[i])) printf("%lf\n", m[i]);
    }
}

Исходная версия imul, :

:( ну вот зачем ты решение дал? Обломал азарт.