Другие языки программирования и технологии

Помогите с лабораторной на языке С. Программа должна рассчитать сколько раз изменился знак во вводимых числах.

Используя оператор while или do...while.
С украинского на русский переведи.

Быстро отреагировал:

#include "iostream"

int main()
{
int counter = 0;
int number;

std::cin >> number;

int previous_number = number;

do
{
std::cin.clear();
std::cin >> number;

if (abs(number) < 100)
{
if (previous_number >= 0 && number < 0 || previous_number < 0 && number >= 0)
{
counter++;
}

previous_number = number;
}
} while (abs(number) < 100);

std::cout << "Counter: " << counter << std::endl;
system("pause");
}

P.S. в России кончаются стратегические запасы сала, буду не против, если вышлите почтой.

UPDATE:

#include "stdio.h"
#include "stdlib.h"

int main()
{
int counter = 0;
int number;

scanf_s("%d", &number);

int previous_number = number;

do
{
scanf_s("%d", &number);

if (abs(number) < 100)
{
if (previous_number >= 0 && number < 0 || previous_number < 0 && number >= 0)
{
counter++;
}

previous_number = number;
}
} while (abs(number) < 100);

printf("Counter: %d\n", counter);
system("pause");
}
Davron Sattarov
Davron Sattarov
1 755
Лучший ответ
Мунир Валиев С клавы вводятся целые числа в диапозоне [-100;100].Концом введения является число, которое выходит за рамки этого промежутка. Прога должна высчитать, сколько раз изменяется знак числа из введенной последовательности.
int count = 0, prev, cur;
scanf("%d", &prev);
if (abs(prev) <= 100) {
while (1) {
scanf("%d", &cur);
if (abs(cur) > 100) { break; }
if (prev * cur < 0 || prev * cur == 0 && prev + cur != 0) { ++count; }
prev = cur;
}
}
printf("%d", count);

Число 0 не является ни положительным, не отрицательным - это отдельный, третий, знак числа.

Если нули игнорируем, то всё становится даже проще:

if (prev * cur < 0) {
++count;
} else if (cur != 0) {
prev = cur;
}
Вася Грендач
Вася Грендач
72 966
#||Dark||# /...angel...\ Твой вариант гораздо лучше, чем мое г*вно-поделие на невыспавшуюся голову. Сохраню.

Похожие вопросы