IPB

Здравствуйте, гость ( Вход | Регистрация )

> МАССИВЫ, С++
Neuch
сообщение 5.12.2009, 4:17
Сообщение #1


Школьник
*

Группа: Продвинутые
Сообщений: 33
Регистрация: 28.10.2009
Город: Красноярск
Учебное заведение: ИКИТ
Вы: студент



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

Написал прогу, но не могу найти где ошибся......помогите пожалуйста(IMG:style_emoticons/default/smile.gif)


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()
{
const int N=100; //максимальный размер массива
int A[N], i, //индекс элемента массива
n, d, //количество элементов в массиве
imin, //индекс минимального элемента
iotr; //индекс отрицательного элемента
printf("Vvedite chislo elementov massiva:");
scanf("%d", &n);
for (i=0; i<n; i++)
{
printf ("Vvedite elementi massiva A[%d%s",i,"]=");
scanf("%d", &A[i]);
imin=0; //предполагаем что первый элемент минимальный
}
for (i=0; i<(n-1); i++)
{ //Если текущий элемент массива меньше минимального, то запоминаем его индекс
if (A[imin]<A[i])
imin=i;
}
if (A[n-1]<0) // проверяем, является ли последнее число в массиве отрицательным

{ iotr=n-1;}

d=A[imin];
A[imin]=A[iotr];
A[iotr]=d;

printf("otr %d \n",A[iotr]);
printf("min %d \n",A[imin]);


printf("Posle perestanovki massiv A[]=");
for (i=0; i<n; i++)
printf("%d", A[i]);
getch();
}
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
Евгений М.
сообщение 5.12.2009, 11:07
Сообщение #2


Студент
**

Группа: Продвинутые
Сообщений: 199
Регистрация: 6.11.2009
Город: Уфа
Вы: студент



1. В комментариях вы пишите "Если текущий элемент массива меньше минимального, то запоминаем его индекс".
Код
if (A[imin]<A[i])
imin=i;

А вы поставили следующее условие: "Если текущий элемент массива больше минимального, то запоминаем его индекс".

2. В этом же цикле нужно запомнить последний отрицательный элемент. Условие, которую вы установили для нахождения "последнего отрицательный элемента", не соответствует требованию задачи, а также может привести к ошибке при выполнении программы. Например: Если пользователь вводит последний элемент положительным, то переменная iotr будет иметь не понятно какое значение. И ваша программа будут ввести себя не предсказуемо при выполнении A[imin]=A[iotr];.

3. Возможен случай, когда пользователь будет вводит только положительные числа или только отрицательные. Вам нужно это учесть.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 26.5.2025, 0:53

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru