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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2013, 13:45   #1
Tata!!
Новичок
Джуниор
 
Регистрация: 17.01.2013
Сообщений: 1
По умолчанию нужно разобраться с программой(написана на языке Си)

хотелось бы как можно подробнее понять какая строка за что отвечает

http://yadi.sk/d/fIgbyjmQ1vH47
Tata!! вне форума Ответить с цитированием
Старый 17.01.2013, 19:22   #2
Blind Guard
Форумчанин
 
Регистрация: 14.03.2012
Сообщений: 139
По умолчанию

Вам быстрее помогут, если выложите код прямиком в этой теме.
Blind Guard вне форума Ответить с цитированием
Старый 17.01.2013, 21:52   #3
spinogryz_ua
Форумчанин
 
Аватар для spinogryz_ua
 
Регистрация: 14.01.2012
Сообщений: 150
По умолчанию

Да, тут он более читабельно смотрится...
Код:
#include "stdafx.h"
#include <locale.h>
#include <stdlib.h>
#include <stdio.h>
void qSort(int **a,int N) {
int i = 0, j = N;
int temp, p;
p = a[j>>1][0];
do
{
while ( a[i][0] > p ) i++;
while ( a[j][0] < p ) j--;
if (i <= j)
	{
		for (int k=0;k<3;k++)
			{
			temp = a[i][k];
			a[i][k] = a[j][k];
			a[j][k] = temp;
			}
i++; j--;
	}	
} 
while ( i<=j );
	if ( j > 0 ) qSort(a, j);
		if ( N > i ) qSort(a+i, N-i);
}
void poisk(int **a, int N)
{
setlocale (LC_ALL,"Russian");
int markm=0,markz=0,j;
	for (int i=0;i<N;i++)
	{
	if (a[i][1]==0 && markm!=1)
		{
		for (j=i;j<N;j++)
				if (a[j][1]==0 && a[j][0]==a[i][0])
					{
					printf("Dannye samogo starshego muzhchiny:\n");
					printf("%d M %d\n", a[i][0], a[i][2]);
					}
				else break;
		markm=1;
		}
		else if (a[i][1]==1 && markz!=1)
	{
	for (j=i;j<N;j++)
		if (a[j][1]==1 && a[j][0]==a[i][0])
				{
				printf("Dannye samoj starshej zhenschiny:\n");
				printf("%d ? %d\n", a[i][0], a[i][2]);
				}
		else break;
		markz=1;
	}
if (markm==1 && markz==1) break;
}
markm=0;
markz=0;
for (int i=N-1;i>0;i--)
	{
	if (a[i][1]==0 && markm!=1)
		{
		for (j=i;j<N;j++)
			if (a[j][1]==0 && a[j][0]==a[i][0])
				{
				printf("Dannye samogo mladshego muzhchiny:\n");
				printf("%d M %d\n", a[i][0], a[i][2]);
				}
			else break;
			markm=1;
		}
		else if (a[i][1]==1 && markz!=1)
	{
	for (j=i;j<N;j++)
		if (a[j][1]==1 && a[j][0]==a[i][0])
			{
			printf("Dannye samoj mladshej zhenschiny:\n");
			printf("%d ? %d\n", a[i][0], a[i][2]);
			}
		else break;
	markz=1;
	}
if (markm==1 && markz==1) break;
}
}
int main()
{
int size,i;
char pol;
printf("Vvedite kolichestvo chelovek\n");
scanf("%d",&size);
int **mas;
mas=(int**)malloc(sizeof(int*)*size);
for (i=0;i<size;i++) mas[i]=(int*)malloc(4*sizeof(int));
printf("Vvedite dannye sledujuschim obrazom:\nvozrast pol dokhod\n");
for (i=0;i<size;i++)
	{
	printf("Vvedite dannye o %d-om cheloveke\n",i+1);
	scanf("%d",&mas[i][0]);
	scanf("\n");
	pol=getwchar();
	if (pol=='M') mas[i][1]=0;
	else if (pol=='Z') mas[i][1]=1;
	scanf("%d",&mas[i][2]);
	}
qSort(mas,size-1);
printf("\n");
for (i=0;i<size;i++)
	{
	printf("%d ",mas[i][0]);
	if (mas[i][1]==0) printf("M ");
	else printf("Z ");
	printf("%d\n",mas[i][2]);
	}
printf("\n");
poisk(mas,size);
return 0;
}

Последний раз редактировалось spinogryz_ua; 17.01.2013 в 22:12.
spinogryz_ua вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
правильно ли написана программа на языке Си? valentina-mo Общие вопросы C/C++ 1 21.11.2012 18:00
Горит дипломная работа.Нужно разобраться с программой. Денис М Общие вопросы Delphi 2 24.01.2012 17:47
Нужно переписать эту программу на языке C#. Она написана на AS2 Кристиан Помощь студентам 1 20.12.2011 21:34
нужно разобраться с программой Deductor lyusi4k Помощь студентам 3 21.05.2011 19:15
нужно разобраться с программой tanjusha Паскаль, Turbo Pascal, PascalABC.NET 8 20.05.2010 04:29