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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2009, 00:00   #1
Sha-sha
Новичок
Джуниор
 
Регистрация: 18.05.2009
Сообщений: 1
По умолчанию Динамические массивы на си

преподаватель сказал сделать то же самое, только оба динамических массива через указатели.
дано два динамических массива (первый, который пользователь вводит самостоятельно, с размерностью, которая, задается с клавиатуры, и второй, который создается из первого по определенному условию)
помогите пожалуйста записать через указатели. выручите глупую девушку, очень прошу
вот то что я накарябала

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int i, j, m, n, tmp, x, y;
int status;
double sum;
double **array;
double **new;

printf("kolichestvo strok: ");
scanf("%d", &m);

printf("kolichestvo stolbtsov: ");
scanf("%d", &n);

//динамическое выделение памяти под массив
array = (double**)malloc(m * sizeof(double*));
if (!array)

return NULL;
for (i=0; i<m; i++)
{
array[i]=(double*)malloc(n * sizeof(double));
if (!array[i])
{
for (j=0; j<i; j++)
free(array[j]);
free(array);
return NULL;
}
}
new = (double**)malloc(m * sizeof(double*));
if (!new)

return NULL;
for (i=0; i<m; i++)
{
new[i]=(double*)malloc(n * sizeof(double));
if (!new[i])
{
for (j=0; j<i; j++)
free(new[j]);
free(new);
return NULL;
}
}


//ввод массива
printf("vvedite massiv razmernost'u %d x %d: \n", m, n);
for (i=0; i<m; i++)
{
for (j=0; j<n; j++)
{
printf("(%d, %d)", i+1, j+1);
scanf("%lf", &array[i][j]);

}

}
//вывод массива
for (i=0; i<m; i++)
{
printf("\n\n");
for (j=0; j<n; j++)
printf("%7.1f", array[i][j]);

}
//создаем новый массив по нашему условию
sum=0.;
for (i=0;i<=m;i++)
for (j=0;j<=n;j++)
{
for (x=0;x<=i;x++)
for (y=0;y<=j;y++)
{
sum=sum+array[x][y];
}
new[i][j]=sum;
sum=0.;
}

printf ("\n rezyl'tat");
for (i=0; i<m; i++)
{
printf("\n\n");
for (j=0; j<n; j++)
printf("%7.1f", new[i][j]);

}

printf ("\n\n");

for (i=0; i<m; i++) //освобождаем выделенную память

free(array[i]);

free(array);

for (i=0; i<m; i++)

free(new[i]);

free(new);

return 0;
}
Sha-sha вне форума Ответить с цитированием
Старый 19.05.2009, 18:55   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

не используйте ключевые слова для объявления переменных

вместо
Код:
double **array;
double **new;
что то вроде этого
Код:
double **arr;
double **new_arr;
и вот тут

Код:
//создаем новый массив по нашему условию
sum=0.;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
{
for (x=0;x<=i;x++)
for (y=0;y<=j;y++)
{
sum=sum+array[x][y];
}
new[i][j]=sum;
sum=0.;
}
и вроде что то делает
counter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамические массивы funky Общие вопросы C/C++ 3 12.05.2009 01:54
pascal динамические массивы world12_tk Помощь студентам 7 27.04.2009 10:56
си динамические массивы, работа с фалами. tanek Помощь студентам 0 19.04.2009 23:28
Указатели и динамические массивы. Airou Общие вопросы C/C++ 5 16.01.2009 19:05