Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2016, 11:42   #1
Павел2517
Пользователь
 
Регистрация: 05.03.2016
Сообщений: 11
По умолчанию Не могу понять в чем ошибка. Не выполняется условная конструкция.

Думаю что ошибка с функцией scanf(). Как исправить? Язык СИ.

Код:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <stdlib.h>
#include <ctype.h>

int main()
{
	setlocale(LC_ALL, "Rus");

	system("color F0");

	printf("\t\t***Нахождение среднего арифметического массива***\n");
	printf("\t\t\t***Перестановка его в середину***\n\n");

	int N;
	int i;

	printf("Введите размер окончательного массива: ");
	scanf_s("%d", &N);
	
	int *Arr = new int [N];

	printf("Заполнение массива!\n");

	for (int i = 0; i < N - 1; i++)
	{
		printf("Введите значение %d элемента массива: ", i + 1);
		scanf_s("%d", &Arr[i]);
		fflush(stdin);// очищает буфер scanf()
	}
	system("cls");//очищает экран

	printf("\t\t\tИсходный массив\n\n");

	for (int i = 0; i < N - 1; i++)
	{
		printf("Arr[%d] = %d\n", i, Arr[i]);
	}

	double sum = 0, SredneAriph;;

	for (int i = 0; i < N - 1; i++)
	{
		sum = sum + Arr[i];
	}

	SredneAriph = sum / (N - 1);

	printf("Среднее арифметическое массива: %.1f", SredneAriph);
	printf("\nХотите перенести среднее арифметическое в середину массива(Y/N)?");

	char Otvet;

	scanf_s("%c", &Otvet);
	Otvet = toupper(Otvet);

	if (Otvet == 'Y')//не выполняется это условие. Почему?
	{
		Otvet = toupper(Otvet);
		system("cls");

		for (int i = 0; i < N - 1; i++)

			printf("Arr[%d] = %d\n", i, Arr[i]);

		printf("\n");

		for (int i = N - 1; i > N / 2; i--)

			Arr[i] = Arr[i - 1];
		N++;
		Arr[(N / 2) - 1] = SredneAriph;

		for (i = 0; i < N - 1; i++)
			printf("Arr[%d] = %d\n", i, Arr[i]);
	}
	else
	{
		_getch();
		return -1;
	}

	delete [] Arr;
	_getch();
	return 0;
}

Последний раз редактировалось Павел2517; 06.03.2016 в 11:49.
Павел2517 вне форума Ответить с цитированием
Старый 06.03.2016, 14:02   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Код:
if (Otvet == 'Y')//не выполняется это условие. Почему?
ну посмотри в дебаггере значение-то, ёмаё!

а вместо scanf_s() юзай getch().
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 06.03.2016, 20:12   #3
titea
Новичок
Джуниор
 
Регистрация: 06.03.2016
Сообщений: 14
По умолчанию

Условная на мой взгляд это системообразующая.
Кто придет с трояном, тот от трояна и замрет.
titea вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Основные управляющие конструкции языка Delphi. Конструкция присваивания. Условная конструкция. Конструкция множественного выбора. nadyaH Помощь студентам 3 23.11.2013 22:19
не могу понять, в чем ошибка Sv. Общие вопросы C/C++ 8 01.11.2012 18:07
не могу понять в чем ошибка 6002theJuicy Visual C++ 4 23.05.2012 15:19
Си. Не могу понять в чем ошибка Gerbera Помощь студентам 2 12.07.2011 19:11
Не могу понять, в чем ошибка FlashProStar Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 01.12.2010 12:20