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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2014, 00:06   #11
Margana17
Пользователь
 
Аватар для Margana17
 
Регистрация: 31.12.2013
Сообщений: 15
Хорошо

спасибо большое что помогаете мне! я исправила прогу и он заработала..но почему-то положение определяет неправильно и следовательно строку неправильно вырезает.. я поняла принцип( и за это вам спасибо тоже), но ошибку найти не могу.. вот как работает прога:
Изображения
Тип файла: jpg лн.jpg (16.9 Кб, 33 просмотров)
Margana17 вне форума Ответить с цитированием
Старый 04.01.2014, 00:20   #12
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Пожалуйста. Выложите текущий код (не забудьте нажать кнопочку решетка #, чтобы код получился форматированным).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 04.01.2014, 00:45   #13
Margana17
Пользователь
 
Аватар для Margana17
 
Регистрация: 31.12.2013
Сообщений: 15
Сообщение

Код:
{
int i;
*r=0;
for(i=1;i<n;++i)
	if(x[i]<x[*r])
	{
	*r=i;
	}
return;
}
/*int xsum(int n,int *x,int *r)
{
int i,s;
s=0;
for(i=0;i<n;i++)
	s+=x[i];
	*r=t;
return;
}*/
main()
{
int i,j,n,m,**a,k,*y,s,r;
FILE *in;
clrscr();
in=fopen("massiv.dat","r");
printf(" n и m:");
scanf("%d%d",&n,&m);
a=(int**)malloc(n*sizeof(int*));
for(i=0;i<n;i++)
	a[i]=(int*)malloc(m*sizeof(int));
for(i=0;i<n;i++)
	for(j=0;j<m;j++)
		fscanf(in,"%d",&a[i][j]);
for(i=0;i<n;i++)
	{
	for(j=0;j<m;j++)
		printf("%3d",a[i][j]);
	printf("\n");
	}
printf("\n  k: \n");
scanf("%d",&k);
y=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++)
	y[i]=a[i][k];
for(i=0;i<n;i++)
	printf("%5d",a[i][k-1]);
xpmin(n,y,&r);
printf("\n положение\n  значение,r,y[r]);
for(i=0;i<m;i++)
	printf("%5d",a[r][i]);

for(i=0;i<n;i++)
	free(a[i]);
free(a);
free(y);
s=0;
for(i=0;i<n;i++)
	   if(y[i]>0)
	   s+=y[i];
	   printf("s=%d",s)*/
getch();
return 0;
}
Margana17 вне форума Ответить с цитированием
Старый 04.01.2014, 01:06   #14
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Вы заносите один столбец, а печатаете другой вот в этом месте:
Код:
for(i=0;i<n;i++)
    y[i]=a[i][k];
for(i=0;i<n;i++)
    printf("%5d",a[i][k-1]);
Можно это записать короче:
Код:
for(i=0;i<n;++i)
    printf("%5d",y[i]=a[i][k]);
UPD
Пожалуйста. Успехов в освоении.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 04.01.2014 в 01:34.
BDA вне форума Ответить с цитированием
Старый 04.01.2014, 01:32   #15
Margana17
Пользователь
 
Аватар для Margana17
 
Регистрация: 31.12.2013
Сообщений: 15
По умолчанию

ДА! получилось! Спасибо большое
сегодня целый день со мной возитесь!
У меня просто проблема такая, что я решаю задачи шаблонно...а чуть меняется условие уже все..вот я и хочу избавиться от этого решая много задач. В общем спасибо еще раз!
Margana17 вне форума Ответить с цитированием
Старый 04.01.2014, 02:35   #16
Margana17
Пользователь
 
Аватар для Margana17
 
Регистрация: 31.12.2013
Сообщений: 15
По умолчанию

я не знаю как исправить от что не правильно выдает сумму , а то что до этого все работает.вот скрин
Код:
void xpmin(int n,int*x,int *z,int*r)
{
int i;
*r=0;
for(i=1;i<n;++i)
	if(x[i]<x[*r])
	{
	*z=x[i];
	*r=i;
	}
}
int xsum(int m,int *x,int *r)
{
int i,s;
s=0;
for(i=0;i<m;i++)
	s+=x[i];
	*r=s;
return;
}
main()
{
int i,j,n,m,**a,k,*y,s,r,z;
FILE *in;
clrscr();
in=fopen("massiv.dat","r");
printf("ўўҐ¤ЁвҐ Є®«ў® бва®Є Ё бв®«Ўж®ў n Ё m:");
scanf("%d%d",&n,&m);
a=(int**)malloc(n*sizeof(int*));
for(i=0;i<n;i++)
	a[i]=(int*)malloc(m*sizeof(int));
for(i=0;i<n;i++)
	for(j=0;j<m;j++)
		fscanf(in,"%d",&a[i][j]);
for(i=0;i<n;i++)
	{
	for(j=0;j<m;j++)
		printf("%3d",a[i][j]);
	printf("\n");
	}
printf("\n ўўҐ¤ЁвҐ *®¬Ґа бв®«Ўж* k: \n");
scanf("%d",&k);
y=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++)
	y[i]=a[i][k-1];
for(i=0;i<n;i++)
	printf("%5d",a[i][k-1]);
xpmin(n,y,&z,&r);
printf("\n Ї®«®¦Ґ*ЁҐ ¬Ё* н«Ґ¬Ґ*в* %d\n §**зҐ*ЁҐ ¬Ё* %d\n\n",r,y[r],z);
printf("\n бва®Є* б ¬Ё* н«Ґ¬Ґ*⮬:\n");
for(i=0;i<m;i++)
	printf("%5d",a[r][i]);
s=xsum(m,a,r);
for(i=0;i<m;i++)
	printf("\n б㬬* а*ў** %d \n",s);
for(i=0;i<n;i++)
	free(a[i]);
free(a);
free(y);
getch();
return 0;
}
Изображения
Тип файла: jpg вите.jpg (17.0 Кб, 36 просмотров)
Margana17 вне форума Ответить с цитированием
Старый 04.01.2014, 02:51   #17
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Не проверял:
Код:
void
xpmin(int n, int*x, int *z, int*r)
{
    int i;
    *r = 0;
    for(i = 1; i < n; ++i)
        if (x[i] < x[*r])
            *r = i;
    *z = x[*r];
}

int
xsum(int m, int p, int **b)
{
    int i, s;
    for(i = s = 0; i < m; ++i)
        s += b[p][i];
    return s;
}

int
main()
{
    int i, j, n, m, **a, k, *y, r, z;
    FILE *in;
    clrscr();
    in = fopen("massiv.dat", "r");
    printf("n and m:\n");
    scanf("%d%d", &n, &m);
    a = (int **) malloc(n * sizeof(int *));
    for(i = 0; i < n; ++i)
        a[i] = (int *) malloc(m * sizeof(int));
    for(i = 0; i < n; ++i)
        for(j = 0; j < m; j++)
            fscanf(in, "%d", &a[i][j]);
    for(i = 0; i < n; ++i) {
        for(j = 0; j < m; ++j)
            printf("%3d", a[i][j]);
        printf("\n");
    }
    printf("\nk:\n");
    scanf("%d", &k);
    y = (int *) malloc(n * sizeof(int));
    for(i = 0; i < n; ++i)
        printf("%5d", y[i] = a[i][k-1]);
    xpmin(n, y, &z, &r);
    printf("\nmin pos %d\nmin value %d\nline:\n", r, z);
    for(i = 0; i < m; ++i)
        printf("%5d", a[r][i]);
    printf("\nsum %d\n", xsum(m, r, a));
    for(i = 0; i < n; ++i)
        free(a[i]);
    free(a);
    free(y);
    getch();
    return 0;
}
1) Пожалуйста, пишите форматированный код. Он гораздо легче воспринимается.
2) Не понял, что должна считать xsum, поэтому она считает сумму в p-ой строке.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 04.01.2014, 03:13   #18
Margana17
Пользователь
 
Аватар для Margana17
 
Регистрация: 31.12.2013
Сообщений: 15
По умолчанию

Спасибо вам! все считает правильно!
помогли мне очень)
я теперь смогу порешать подобные задачки и потренироваться перед экзаменом)
Margana17 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
в матрице найти сумму элементов в каждом столбце Стамус Помощь студентам 2 15.10.2012 07:23
В двумерном массиве найти минимальный максимальный элемент в строке\столбце Proskurina Паскаль, Turbo Pascal, PascalABC.NET 6 08.09.2012 21:14
В двумерном массиве найти минимальный максимальный элемент в строке\столбце Proskurina Помощь студентам 3 08.09.2012 11:07
В матрице nxm определить в каждом столбце минимальное и максимальное элемент число, возвести в степень. Рекурсия (на Паскаль абс) BArt2000 Паскаль, Turbo Pascal, PascalABC.NET 1 03.04.2012 08:32
[Delphi] В матрице обнулить все элементы, расположенные после максимального в каждом столбце Volodyajke Помощь студентам 5 17.11.2011 23:52