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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2012, 20:28   #21
neonakaneya
Пользователь
 
Регистрация: 02.01.2012
Сообщений: 19
По умолчанию

Код:
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;


int main()
{
	ifstream fin ("Input.txt");
	ofstream fout ("Output.txt");
	
	char First[12];
	
	fin.getline(First,12);
	int N,A,B,C,D;
	
	int ArrayOfSpaces[12];
	int count=0;
    for(int i=1; i<12;i++)
	{
		if(First[i]==' '){
			ArrayOfSpaces[count]=i;
			count++;}
	    if(First[i]=='\0'){
			ArrayOfSpaces[count]=i;
			count++;}
	
	}
	int forN=ArrayOfSpaces[0];
	int forA=ArrayOfSpaces[1];
	int forB=ArrayOfSpaces[2];

	if(forN==3)  N=(First[forN-3]-48)*100 + (First[forN-2]-48)*10 + (First[forN-1]-48);
	if(forN==2)  N=(First[forN-2]-48)*10 + (First[forN-1]-48);
    if(forN==1)  N=(First[forN-1]-48);

	int two;
	two=forA-forN-1;

	if(two==1) A=(First[forN+1]-48);
	if(two==2) A=(First[forN+1]-48)*10 + (First[forN+2]-48);
	if(two==3) A=(First[forN+1]-48)*100 + (First[forN+2]-48)*10 + (First[forN+3]-48) ;

	int three;
	three = forB-forA-1;
	if(three==1) B=(First[forA+1]-48);
	if(three==2) B=(First[forA+1]-48)*10 +(First[forA+2]-48) ;
	if(three==3) B=(First[forA+1]-48)*100 + (First[forA+2]-48)*10 +(First[forA+3]-48);

	
	
	int ArrayCost[100];
	int ArrayOfSpacesTwo[100];
	int counttwo=0;
	for (int j = 0 ; j<=N-1;j++)
	{
		fin.getline(First,8);
	

	for(int h=0;h<9;h++)
		{
			if(First[h]==' ') 
			{
				ArrayOfSpacesTwo[counttwo]=h;
				counttwo++;
			}
			if(First[h]=='\0') 
			{
				ArrayOfSpacesTwo[counttwo]=h;
				counttwo++;
			}

		}
		int forC=ArrayOfSpacesTwo[0];
		int forD=ArrayOfSpacesTwo[1];

		if(forC==3) C=(First[forC-3]-48)*100+(First[forC-2]-48)*10+(First[forC-1]-48);
		if(forC==2) C=(First[forC-2]-48)*10 + (First[forC-1]-48);
		if(forC==1) C=First[forC-1]-48;
         
		int minusD= forD - forC-1 ;
		if(minusD==1) D= ( First[forC+1]-48) ;
		if(minusD==2) D=(First[forC+1]-48)*10 + (First[forC+2]-48) ;
		if(minusD==3) D=(First[forC+1]-48)*100 + (First[forC+2]-48)*10 + (First[forC+1]-48) ;
		cout<<C<<' '<<D<<endl;
		
		
		ArrayCost[j]=A*C+B*D;
	}

	
	int SecondArray[100];

	for (int k = 0 ; k<N;k++)
	{
		SecondArray[k]=ArrayCost[k];
	}

	  
	for (int p = 0; p<N; ++p)
	{
        int tmp = 0;
        for (int j=(p+1); j<N; ++j)
            if (ArrayCost[p]<ArrayCost[j]) 
			{
                tmp = ArrayCost[p];
                ArrayCost[p] =ArrayCost[j];
                ArrayCost[j] = tmp;        
            }
    }
	  
	int m=1;
	if(ArrayCost[N-1]!=SecondArray[m]) 
	    {
			m++;
	    }
	else 
	    {
			fout << m;
	    }


	
	
	system("pause");
	return 0;

}
копирую ArrayCost в SecondArray (нужно чтобы был старый вариант массива, и новый отсортированный, а потом сравнить их и найти номер самого маленького числа в первоначальном массиве), но почему-то после сортировки пузырьком, на выходе получается 2 упорядоченных массива О_О ( проверял выводом в консоль обоих массивов ) Я как-то не так копирую массив ?
neonakaneya вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение массива типа char. KuckaMAXHATKA Общие вопросы C/C++ 1 15.02.2011 18:07
Конверт int массива в char массив Raptor Помощь студентам 14 23.03.2010 00:50
Как перевести значение ячейки массива char в int в Си SASS Общие вопросы C/C++ 1 10.12.2009 14:44
почему элемент массива char* весит 4 байта? Познающий Помощь студентам 6 09.12.2009 21:06
Запись числа типа инт в ячейку двумерного массива типа char AxenicX Помощь студентам 1 25.09.2009 00:35