Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » *Example* | Помогите по C++ (Массивы)

Ответить
Настройки темы
*Example* | Помогите по C++ (Массивы)
Tier9


Сообщения: n/a

Профиль | Цитировать


В массиве х(х1, х2...xn) найти максимальный элемент и поделить его на все остальные элементы?
Алглоритм простой, я не знаю как написат программный код на С++

Отправлено: 02:21, 09-03-2005

 

Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#define N 12

#include <stdio.h>

void precise_division(int first,int second,int precision);

void main(void){
	int x[N]={1,2,3,34,4,5,6,7,8,9,10,11};
                //double b[N];
	int i=0;
	int result=x[i];
	for(i++; i<N;i++)
	if(x[i]>result)
		result=x[i];printf("Maximum: %d\n",result);
	if(result !=0){
		for (i=0; i<N;i++)
			//b[i]=(double)x[i]/(double)result;
			precise_division(x[i],result,20);
	}
}


void precise_division(int first,int second,int k){
	int c=0;
	int ost;
	int tmp;
	int cnt=0;
	int t=0;

	tmp=first;

	if(first>=second)
		while (first>=second)
		{
			first-=second;
			c++;
		}
	else if (first<second)
		c=0;

	if(first==0)
		printf ("first/second = %d\n",c);
	else
		{
		first=tmp;
		printf ("first/second = %d,",c);

		ost=first%second;

		while(cnt<k)
			{
			if( ost<second)
				{			
				if (t>=1)
					{
					printf ("0");
					cnt++;
					}
				t++;
				ost*=10;
				}
			else
				{	
				printf("%d",ost/second);
				ost%=second;
				cnt++;
				t=0;
				}
			}
		}
	printf ("\n");
}

Последний раз редактировалось mrcnn, 09-03-2005 в 03:39.


Отправлено: 03:31, 09-03-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Я бы посоветовал воспользоваться алгоритмами (писанины меньше и понятней)
Код: Выделить весь код
#include <stdexcept>
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;

// must be declared 
class doSmth_divMax {
    double max;
public:
    doSmth_divMax(const double& d) : max(d)
   {
   }
    void operator()(double& d) const
   {
         d = max/d;
   }
};

void doSmth(vector<double>& vd)
{
    vector<double>::iterator imax = max_element(vd.begin(), vd.end());

    if (vd.end()!=imax) {
        for_each(vd.begin(), vd.end(), doSmth_divMax(*imax));
        return;
    }

    throw logic_error("there is no maximum here");
}
мне кажется, что в фразе
Цитата:
и поделить его на все остальные
кроится какая-то ошибка. Если так, то программа будет ещё проще.

Отправлено: 11:08, 09-03-2005 | #3

Tier9


Сообщения: n/a

Профиль | Цитировать


Спасибо всем!!!

Отправлено: 09:57, 11-03-2005 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » *Example* | Помогите по C++ (Массивы)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Массивы SS3 Программирование и базы данных 3 29-04-2009 21:47
MySQL массивы XCodeR Вебмастеру 5 28-08-2005 11:42
Массивы в С++ Guest Программирование и базы данных 2 27-09-2004 10:12
Массивы в ПХП PhoeniX BoG Вебмастеру 4 09-04-2004 19:12
C++ и массивы ? IG Программирование и базы данных 9 09-06-2003 09:33




 
Переход