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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2009, 20:50   #1
MR_Andrew
Форумчанин
 
Регистрация: 05.10.2009
Сообщений: 100
По умолчанию C (Си) - задание на массивы.

Добрый вечер!
Это капец... Но еще не сдался!
Итак, задание:
1. Обработать в соответствии к варианту задание, указанное в таблице.
2. Проверить правильность выполнения программы при помощи тестового варианта.
Суть: массив D(80). Найти максимальный и минимальный элемент массива D і поменять их местами.

Удалось вывести сам массив. Окончательно застрял на определении мин макс. Выходит бред. Сама программа:
Код:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>

const int N=80;
int main()
{{
int i, D[N];
for(i=0; i<N; i++)
randomize();
D[i]=random(151)+50;
for (i=0; i<=80; i++)
printf(" %d ", D[i]);
}
{
int i, min, max, D[N];
const int N=80;
max= D[0];
min= D[0];
for(i=1; i<=80; i++)
{
if (D[i]>max) {max= D[i];}
if (D[i]<min) {min= D[i];}
printf(" max= %i min= %i ", max, min );
}}
getchar();
return 0;
}
не надо говорить "что это за ужос"... Как могу, читаю литературу, вот только смотрю в книгу... И,как всегда, вижу...
Не могу понять в чем проблема с мин/макс, до перестановки местами еще не дошел. Прошу помочь
MR_Andrew вне форума Ответить с цитированием
Старый 21.11.2009, 20:59   #2
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

1) зачем после main() две скобки
Код:
int main()
{{
?

2) randomize() нет.
вместо него используй
srand ( time(NULL) );
(вначале нужно написать #include <time.h>)

3) random() тоже нету.
Код:
D[i] = rand() % 151 + 50;

Последний раз редактировалось Роман Радер; 21.11.2009 в 21:01.
Роман Радер вне форума Ответить с цитированием
Старый 21.11.2009, 21:03   #3
MR_Andrew
Форумчанин
 
Регистрация: 05.10.2009
Сообщений: 100
По умолчанию

Роман Радер
огромное спасибо, учту. Я просто только первый курс, делаю полностью по аналогии, как умею. Вот нам препод написал так, вот я передираю. Преподают не очень, поэтому вопросов у меня, к сожалению, больше, чем ответов. И знаний 0.
MR_Andrew вне форума Ответить с цитированием
Старый 21.11.2009, 21:07   #4
MR_Andrew
Форумчанин
 
Регистрация: 05.10.2009
Сообщений: 100
По умолчанию

rand сделал, но: мне надо вообще любыми, это я от себя сделал 151+50, чтоб хоть как-то.
MR_Andrew вне форума Ответить с цитированием
Старый 21.11.2009, 21:11   #5
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Код:
#include "stdio.h"

#define N 10

int mass[N] = { 9, 8, 2, 3, 4, 5, 6, 7, 2, 1 };

void print_mass() {
	int i;
	for (i = 0; i < N; i++) {
		printf("%d, ", mass[i]);
	}
	printf("\n");
}

int main() {
	int i;
	int max_val, min_val;
	int max_index, min_index;

	max_val = min_val = mass[0];
	max_index = min_index = 0;

	print_mass();

	for (i = 0; i < N; i++) {
		if (mass[i] > max_val) {
			max_val = mass[i];
			max_index = i;
		}
		else if (mass[i] < min_val) {
			min_val = mass[i];
			min_index = i;
		}
	}

	printf("max_val = %d, max_index = %d\n"
		   "min_val = %d, min_index = %d\n", max_val, max_index, min_val, min_index);

	mass[max_index] = min_val;
	mass[min_index] = max_val;
	
	print_mass();

	return 0;
}
2Роман Радер
он пишет в билдере, поэтому у него есть и рандомайз, и рандом. а скобки 2 там потому, что он хотел ограничить жизнь переменных, но у него не особо вышло)
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 21.11.2009 в 21:14.
pproger вне форума Ответить с цитированием
Старый 21.11.2009, 21:12   #6
MR_Andrew
Форумчанин
 
Регистрация: 05.10.2009
Сообщений: 100
По умолчанию

pproger, спасибо, но.. это мне для примера? Я про такие функции даже не слышал...
MR_Andrew вне форума Ответить с цитированием
Старый 21.11.2009, 21:14   #7
MR_Andrew
Форумчанин
 
Регистрация: 05.10.2009
Сообщений: 100
По умолчанию

Да, еще. Пишу в борланд С++ 3.1, мы в нем работаем.
MR_Andrew вне форума Ответить с цитированием
Старый 21.11.2009, 21:17   #8
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2MR_Andrew
ну можешь использовать как пример, но прога делает то, что тебе нужно. про какие функции ты не слышал?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 21.11.2009, 21:20   #9
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Код:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>

const int N=80;
int main()
{{   //Что это?
int i, D[N];
for(i=0; i<N; i++)
 {
 randomize();
 D[i]=random(151)+50;   //У вас эта строка была не в цикле и выполнялась один раз для последнего значения i
 }
for (i=0; i<=80; i++)
 printf(" %d ", D[i]);
//}
//}
int min, max;
//const int N=80;
max= D[0];
min= D[0];
for(i=1; i<80; i++)
 {
 if (D[i]>max) {max= D[i];}
 if (D[i]<min) {min= D[i];}
 }
printf(" max= %i min= %i ", max, min );   //Это у вас было в цикле
//}}
getchar();
return 0;
}
По-моему, где-то так уже должно работать.

З.Ы. Оу, меня основательно опередили...
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же

Последний раз редактировалось Гром; 21.11.2009 в 21:23.
Гром вне форума Ответить с цитированием
Старый 21.11.2009, 21:21   #10
MR_Andrew
Форумчанин
 
Регистрация: 05.10.2009
Сообщений: 100
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
2MR_Andrew
ну можешь использовать как пример, но прога делает то, что тебе нужно. про какие функции ты не слышал?
наверное проще перечислить то, что слышал...
#define N 10
void
такого и близко не было, я пытаюсь делать так, как нас хоть чему-то учили.
Вот программа с поправкой:

Код:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>

const int N=80;
int main()
{{
int i, D[N];
for(i=0; i<N; i++)
D[i]=rand() %151+50;
for (i=0; i<=80; i++)
printf(" %d ", D[i]);
}
{
int i, min, max, D[N];
max= D[0];
min= D[0];
for(i=1; i<=N; i++)
{
if (D[i]>max) {max= D[i];}
if (D[i]<min) {min= D[i];}
printf(" max= %d min= %d ", max, min);
}}
getchar();
return 0;
}
MR_Andrew вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
Задание на массивы Алексей777911 Фриланс 12 04.11.2009 14:31
задание на С blackbanny Помощь студентам 2 15.10.2009 09:39
Динамические массивы, определение/задание его длины Paul Hindenburg Общие вопросы C/C++ 1 31.05.2009 12:21