HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 13.12.2008, 01:26
izlesa
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме:
414311

Репутация: 110
По умолчанию

2HencH_MaN
Уважай тех к кому обращаешься за помощью. Код, который ты привел, просто нечетабелен. Мне реально влом напрягаться, вчитываясь в эту кашу. Раставь нормально отступы, сгруппируй определения и тд. Тебе же самому будет приятно смотреть, на красиво структурированный код.

Да и в чём собственно вопрос?
 
Ответить с цитированием

  #2  
Старый 13.12.2008, 21:51
HencH_MaN
Новичок
Регистрация: 08.02.2008
Сообщений: 19
Провел на форуме:
63941

Репутация: 0
По умолчанию

Цитата:
Сообщение от izlesa  
2HencH_MaN
Уважай тех к кому обращаешься за помощью. Код, который ты привел, просто нечетабелен. Мне реально влом напрягаться, вчитываясь в эту кашу. Раставь нормально отступы, сгруппируй определения и тд. Тебе же самому будет приятно смотреть, на красиво структурированный код.

Да и в чём собственно вопрос?
Вопрос в том что упорядочивание не производиться
PHP код:
#include<iostream>
#include<alloc.h>
#include<conio.h>
using namespace std;
int main()
{
int i,j,x;
cout<<endl<<"m=";
int m;
cin>>m;
cout<<endl<<"n=";
int n;
cin>>n;
if(
m<1||n<1) return -1;
double**a=new double*[m];
for(
i=0;i<m;i++)
{
a[i]=new double[n];
for(
int j=0;j<n;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
   }
}
int k;
int*b=new int[m];
int min,l;
i=0;x=0;
while(
i<m)
{
int min=a[i][0],max=a[i][0],l;
for(
int j=1;j<n;++j)
    {
if (
a[i][j]<minmin=a[i][j];
if (
a[i][j]>maxmax=a[i][j];
    }
    
l=(2*m-i);
    
b[l]=max;
    
b[i]=min;
    ++
i;
    }
     
int p;
    for (
p=0;p<m;p++){
    
cout<<"b["<<p<<"]="<<b[p];}
    
getch ();
    return 
0;
    } 

Последний раз редактировалось HencH_MaN; 13.12.2008 в 21:53..
 
Ответить с цитированием

  #3  
Старый 13.12.2008, 03:12
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

наверно у него утечка памяти 8))) так активно new использует что даже забыл что есть и delete!
 
Ответить с цитированием

  #4  
Старый 13.12.2008, 11:55
N1K70
Banned
Регистрация: 02.01.2008
Сообщений: 195
Провел на форуме:
523549

Репутация: 301
По умолчанию

задачи на паскале:

Код:
_http://contest.samara.ru/ru/contests/139/
ps: не для слабонервных
 
Ответить с цитированием

  #5  
Старый 13.12.2008, 13:00
lisa99
Постоянный
Регистрация: 15.07.2008
Сообщений: 444
Провел на форуме:
1417964

Репутация: 665
По умолчанию

Цитата:
Сообщение от N1K70  
задачи на паскале:

Код:
_http://contest.samara.ru/ru/contests/139/
ps: не для слабонервных
и что ты этим хотел сказать?
 
Ответить с цитированием

  #6  
Старый 13.12.2008, 22:26
scrat
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме:
5812656

Репутация: 1540


По умолчанию

Если кому-нибудь когда-нибудь понадобится построение ПОЛИЗ(польской инверсной записи - парсинг выражений). То вот вам моя его реализация на c#:


Код:
        public void Parse(string text)
        {
            Stack<char> stack = new Stack<char>(); //рабочкий стек

            string ret = ""; //собственно сам полиз

            for (int i = 0; i < text.Length; i++)
            {
                if (text[i] == '(') stack.Push('(');
                if (char.IsLetter(text[i]) || char.IsDigit(text[i])) ret += text[i];
                
                

                if (text[i] == '-'||text[i]=='*'||text[i]=='/'||text[i]=='+')
                {
                    while (stack.Count!=0 && stack.Peek() != '(') // выталкиваем все с большим приоритетом
                    {
                        char a = stack.Pop(); //вынимаем...
                        if (GetOperationPriory(text[i]) < GetOperationPriory(a)) ret += a;
                    }
                    stack.Push(text[i]);
                }


                if (text[i] == ')')
                {
                    while(stack.Count!=0&&stack.Peek()!=')')
                    {
                        char k = stack.Pop();
                        if (k != ')'&&k!='(') ret += k;
                    }
                }
             }
             if (stack.Count != 0)
             {
                 while (stack.Count != 0)
                 {
                     if (stack.Peek() != '(') ret += stack.Pop();
                     else stack.Pop();
                 }
             }
             label2.Text = ret;
        
        }


    private int GetOperationPriory(char sym) //приоритет операций
        {
            if (sym == '+') return 1;
            if (sym == '-') return 2;
            if (sym == '*') return 3;
            if (sym == '/') return 4;
            else return 0;
        }
 
Ответить с цитированием

  #7  
Старый 13.12.2008, 22:51
criz
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме:
811764

Репутация: 119
По умолчанию

2 HencH_MaN, прогу не компилил, но вроде это
Цитата:
for (p=0;p<m;p++)
{
cout<<"b["<<p<<"]="<<b[p];
}
выводит одну строку из массива, попробуй добавить еще один цикл.

Последний раз редактировалось criz; 14.12.2008 в 00:08..
 
Ответить с цитированием

  #8  
Старый 13.12.2008, 23:24
izlesa
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме:
414311

Репутация: 110
По умолчанию

2HencH_MaN
Башка не рабатает, так что вот тебе немножечко моего говнокода;

На что стоит обратить внимания:
1. Нет никакой обработки случаев когда malloc возвращает нулевые указатели вместо валидных. Это фигово, но мне влом.
2. В задании нет указания на то, что надо обменивать элементы - первый с минимальным, последний с максимальным. Так что я сделал затирание максимальным и минимальным значением последнего и первого элемента строки.
3. Костыли в виде инициализации iMax, iMin максимально и минимально возможными значениями для int сделаны по причине нулевой мотивации облагораживать код и вводить дополнительные if. Так, что если хочешь сделать не машиннозависимый код, то вперёд ^____^

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

int main(void)
{
	int iRowsSize, iColsSize, iMin, iMax;
	int i, j;
	int **pCol;
	int *pRow;
	
	iRowsSize = iColsSize = 0;
        iMax = 0x80000000;
	iMin = 0x7FFFFFFF;
	
	printf("Input number of rows : ");
	scanf("%d", &iRowsSize);	
	printf("Input number of columns :");
	scanf("%d", &iColsSize);

	pCol = (int **)malloc(iColsSize * sizeof(int **));
	
	for(i = 0; i < iColsSize; i++)
	{
		pRow = (int *)malloc(iRowsSize * sizeof(int));
		pCol[i] = pRow;
		for(j = 0; j < iRowsSize; j++)
		{
			printf("Input [%d][%d] element : ", i, j);
			scanf("%d", &pCol[i][j]);
		}
	}

	for(i = 0; i < iColsSize; i++)
	{
		for(j = 0; j < iRowsSize; j++)
		{
			iMax = (pCol[i][j] > iMax) ? pCol[i][j] : iMax;	
			iMin = (pCol[i][j] < iMin) ? pCol[i][j] : iMin;
		}
		pCol[i][0] = iMin;
		pCol[i][iRowsSize - 1] = iMax;
		iMax = 0x80000000;
		iMin = 0x7FFFFFFF; 
	}

	for(i = 0; i < iColsSize; i++)
	{
		for(j = 0; j < iRowsSize; j++)
		{
			printf("[%d][%d] element : %d ", i, j, pCol[i][j]);
			
		}
                free(pCol[i]);
		printf("\n");
	}
        free(pCol);

	return 0;
}

Последний раз редактировалось izlesa; 14.12.2008 в 00:26..
 
Ответить с цитированием

  #9  
Старый 14.12.2008, 12:10
HencH_MaN
Новичок
Регистрация: 08.02.2008
Сообщений: 19
Провел на форуме:
63941

Репутация: 0
По умолчанию

Спасибо,izlesa,помог студенту =)
 
Ответить с цитированием

  #10  
Старый 14.12.2008, 14:01
akwaNOX
Новичок
Регистрация: 03.02.2005
Сообщений: 5
Провел на форуме:
48301

Репутация: 0
По умолчанию

подкиньте плиз, исходник простой программы(любой) написанной на FLTK/FLUID
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости. Обсуждения. 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.