Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / помогите с задачей по acmp.ru / 9 сообщений из 9, страница 1 из 1
30.10.2014, 17:01
    #38791980
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с задачей по acmp.ru
http://acmp.ru/index.asp?main=task&id_task=7

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
#include <fstream>
//#include <iostream>
#include <string>

	using namespace std;

string deletenull( string value )
{
	size_t len_str_value = value.size();

	int index = 0;

	for( int i = 0; i < len_str_value; i++ )
	{
		if( value[ i ] == '0' )
		{
			index++;

		} else break;
	}

	value.erase( 0, index );

	return value;
};

string max( string value1, string value2 )
{
	if( value1[ 0 ] == '0' )
	{
		value1 = deletenull( value1 );
	}

	if( value2[ 0 ] == '0' )
	{
		value2 = deletenull( value2 );
	}

	size_t len_str_value1 = value1.size();
	size_t len_str_value2 = value2.size();

	if( len_str_value1 > len_str_value2 )
	{
		return value1;
	}
	else if( len_str_value1 < len_str_value2 )
	{
		return value2;
	}
	else
	{
		for( int i = 0; i < len_str_value1; i++ )
		{
			if( value1[ i ] < value2[ i ] )
			{
				return value2;
			}
			else
			{
				return value1;
			}
		}
	}

	return " ";
};

void main()
{
	ifstream if_file("input.txt");
	ofstream of_file("output.txt");

	string buffer[3];

	int tmp = 0, index = 0;

	while( !if_file.eof() && index < 3)
	{
		if_file>>buffer[ index++ ];
	}

	if( index == 2 ) {
		return;
	}

	of_file<< max( max( buffer[0] , buffer[1] ), buffer[2] ) <<endl;

	if_file.close();
	of_file.close();

//	cin.get();
};



где ошибка, подскажите пожалуйста.
...
Рейтинг: 0 / 0
30.10.2014, 17:07
    #38791998
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с задачей по acmp.ru
gera3323,

прошу прощения чуть не тут версию скинул.

вот в функции выглядит так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
		bool more = false;

		for( int i = 0; i < len_str_value1; i++ )
		{
			if( value1[ i ] < value2[ i ] )
			{
				more = true;
			}
			else
			{
				more = false;
			}
		}

		if( more )
			return value2;
		else
			return value1;
...
Рейтинг: 0 / 0
30.10.2014, 17:10
    #38792005
NekZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с задачей по acmp.ru
gera3323,

ХЗ, но я эту задачу решал, когда был студентотой. Вот сорц говнокода оттуда

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
#include <vector>
#include <cctype>
 
int mostex(char c1[100], char c2[100])
{
    for (int i = 0; i < strlen(c1); ++i) {
        if (c1[i] > c2[i])
            return 0;
        if (c1[i] < c2[i])
            return 2;
    }
    return 1;
}
 
int most(char c1[100], char c2[100])
{
    if (strlen(c1) > strlen(c2))
        return 0;
    if (strlen(c1) == strlen(c2))
        return mostex(c1, c2);
    if (strlen(c1) < strlen(c2))
        return 2;
}
 
void main()
{
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    char c1[101], c2[101], c3[101];
    scanf("%s%s%s", c1, c2, c3);
    if (most(c1, c2) == 0) {
        if ((most(c1, c3) == 0) || (most(c1, c3) == 1)) {
            printf("%s", c1);
        }
        else {
            printf("%s", c3);
        }
    }
    else {
        if ((most(c2, c3) == 0) || (most(c2, c3) == 1)) {
            printf("%s", c2);
        }
        else {
            printf("%s", c3);
        }
    }
}


...
Рейтинг: 0 / 0
30.10.2014, 17:26
    #38792046
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с задачей по acmp.ru
NekZ,

я так понял еще и знак нужно учитывать
...
Рейтинг: 0 / 0
30.10.2014, 17:39
    #38792084
NekZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с задачей по acmp.ru
gera3323,

С чего вдруг? Там же написано
В первой строке входного файла INPUT.TXT записаны три натуральных числа через пробел.
Мой исходник прошёл все тесты.
...
Рейтинг: 0 / 0
30.10.2014, 17:45
    #38792099
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с задачей по acmp.ru
gera3323,

Мы недавно обсуждали тут эту задачу.
...
Рейтинг: 0 / 0
30.10.2014, 17:47
    #38792102
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с задачей по acmp.ru
MasterZiv,

я с вами не обсуждал эту задачу.
...
Рейтинг: 0 / 0
30.10.2014, 18:25
    #38792158
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с задачей по acmp.ru
Ну конечно это был Сашик .
...
Рейтинг: 0 / 0
31.10.2014, 14:18
    #38792973
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с задачей по acmp.ru
Я помню :) проблема была с тем что система не поддерживала то, как я считывал данные, а MasterZiv предложил более оптимальное решение в итоге, и я узнал что такое контрольная печать. Задача не сложная.

Попробуйте лучше эту решить оптимальней.
Она тоже совсем простая.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / помогите с задачей по acmp.ru / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]