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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2011, 07:48   #1
swatsam
Пользователь
 
Регистрация: 28.12.2010
Сообщений: 15
Вопрос Программа с одномерным массивом!

Проблемма заключается в том что при выводе минимального числа, он выводит самое первой(всегда). помогите столько намучался с этой программой.Заранее спасибо!!!

Задание:
Дан одномерный массив А, состоящий из N элементов. Найдите минемальный элемент.


Код:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <math.h>

using namespace std;

int main()
{
    int razmer=0,i=0,summa=0,min;
    cout<<"Enter chislo elementov massiva"<<endl;
    cin>>razmer;
    int *massiv=new int[razmer];
    cout<<"Enter elementi massiva"<<endl;
	
    for(i=0;i<razmer;i++)
    {
        cout<<"element["<<i<<"]: ";
        cin>>massiv[i];
	}
	for (min=massiv[0],i=1;i<razmer;i++);
	
		if(massiv[i]<min)
		{
			min = massiv[i];
		}
		cout<<"Min massiv = "<<min<<endl;
	
	

   _getch();
}

Последний раз редактировалось Stilet; 07.01.2011 в 11:51.
swatsam вне форума Ответить с цитированием
Старый 07.01.2011, 09:39   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от swatsam Посмотреть сообщение
он выводит самое первой(всегда).
Странно. ЭТА программа
Цитата:
Сообщение от swatsam Посмотреть сообщение
...
for (min=massiv[0],i=1;i<razmer;i++);
if(massiv[i]<min)
{
...
должна выводить бред.
...
Никогда не экономьте на фигурных скобках ради кажущейся элегантности.
Vago вне форума Ответить с цитированием
Старый 07.01.2011, 09:44   #3
swatsam
Пользователь
 
Регистрация: 28.12.2010
Сообщений: 15
По умолчанию

А что нужно что не выводила бред?
swatsam вне форума Ответить с цитированием
Старый 07.01.2011, 10:03   #4
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Разобраться в базовых понятиях C. В частности, уразуметь, что такое "блок" и что такое "тело цикла".
...
Код:
...
   for (min=massiv[0],i=1;i<razmer;i++) {
      if ( massiv[i] < min ) {
         min = massiv[i] ;
      }
   }

   cout << "Min massiv = " << min << endl ;
...
Vago вне форума Ответить с цитированием
Старый 07.01.2011, 11:07   #5
kenwood2010
Пользователь
 
Регистрация: 26.11.2010
Сообщений: 97
По умолчанию

вот готово.
Ты берешь первый элемент массива и присваиваешь его min.
и проверяешь через оператор if остальные элементы последовательности.

Код:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <math.h>

using namespace std;

int main()
{
    int razmer=0,i=0,summa=0,min = 0;
    cout<<"Enter chislo elementov massiva"<<endl;
    cin>>razmer;
    int *massiv=new int[razmer];
    cout<<"Enter elementi massiva"<<endl;
	
    for( i = 0;i < razmer; i++)
    {
        cout<<"element["<<i<<"]: ";
        cin>>massiv[i];
	}
       min = massiv[0];
	for (i = 1; i < razmer; i++)
{	
		if(massiv[i] < min)
		{
			min = massiv[i];
		}
}
		cout<<"Min massiv = "<<min<<endl;
	   _getch();

delete[] massiv; //удаление динамически созданного массива
}
kenwood20072@rambler.ru ICQ: 701 302 135. (Программирование на C++, С. Решение задач по физике)

Последний раз редактировалось kenwood2010; 07.01.2011 в 11:09.
kenwood2010 вне форума Ответить с цитированием
Старый 07.01.2011, 11:23   #6
swatsam
Пользователь
 
Регистрация: 28.12.2010
Сообщений: 15
По умолчанию

Всем большое спасибо!!! Всё отлично работает!

А вот как это всё сделать через внешний файл? я даже представления не имею(

Последний раз редактировалось Stilet; 08.01.2011 в 12:48.
swatsam вне форума Ответить с цитированием
Старый 07.01.2011, 16:45   #7
Блуд
Пользователь
 
Регистрация: 23.05.2010
Сообщений: 53
По умолчанию

Цитата:
Сообщение от swatsam Посмотреть сообщение
А вот как это всё сделать через внешний файл? я даже представления не имею(
что именно нужно,ввести массив из файла?
Блуд вне форума Ответить с цитированием
Старый 07.01.2011, 17:23   #8
swatsam
Пользователь
 
Регистрация: 28.12.2010
Сообщений: 15
По умолчанию

угу, не знаю как это сделать чожет через fname?
swatsam вне форума Ответить с цитированием
Старый 07.01.2011, 19:16   #9
Блуд
Пользователь
 
Регистрация: 23.05.2010
Сообщений: 53
По умолчанию

Код:
#include <iostream>
#include "stdafx.h"
#include <conio.h>

#include <stdio.h>

#include <math.h>
#include <fstream.h>



using namespace std;



int main()

{

	int razmer=0,i=0,summa=0,min = 0;

	ifstream File("File.txt");

	File>>razmer;



    int *massiv=new int[razmer];

    cout<<"Enter elementi massiva"<<endl;



	while(File>>massiv[i++]);// в данном случае ; тут нужна
	File.close();

	   min = massiv[0];

	for (i = 1; i < razmer; i++)

{

		if(massiv[i] < min)

		{

			min = massiv[i];

		}

}

		cout<<"Min massiv = "<<min<<endl;

	   _getch();



delete[] massiv; //удаление динамически созданного массива
пример заполнения файла:
Код:
3 56 47 77
3-кол-во элементов
56 47 77-элементы
Блуд вне форума Ответить с цитированием
Старый 07.01.2011, 20:41   #10
swatsam
Пользователь
 
Регистрация: 28.12.2010
Сообщений: 15
По умолчанию

(11) : fatal error C1083: Cannot open include file: 'fstream.h': No such file or directory

он выдаёт вот такую ошибку, из-за чего это может быть?
swatsam вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с одномерным массивом TvYown Помощь студентам 0 23.12.2010 20:52
Программа с одномерным массивом Novi_ Помощь студентам 1 17.12.2010 17:37
Работа с одномерным массивом в СИ++ glagoff Помощь студентам 6 31.10.2010 21:02