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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2009, 16:01   #1
F1remaster
 
Регистрация: 31.05.2009
Сообщений: 5
По умолчанию QC простые функции

В общем есть текст программы нужно просто добавить функции ввода, расчета и вывода.Программа считает сумму элементов выше и правее (верхний правый угол) для каждого элемента и записывает в другой массив.
текст проги
Код:
#include <stdio.h>
 #include <stdlib.h>
 #define M 5
 #define N 5
 
 void main (void)
 {
 int **s,**a;
 int i,j,k,l,x,y,sum;
/* printf ("\n BBedite M ");
scanf ("%d",M);
printf ("\n BBedite N");
scanf ("%d",N);
*/
 
 FILE*F2;
F2=fopen("input.txt","r");

a = (int **)(calloc(M,sizeof(int*)));
for(j=0; j<M;j++)
a[j]= (int *)(calloc (N,sizeof(int)));

s = (int **)(calloc(M,sizeof(int*)));
for(j=0; j<M;j++)
s[j]= (int *)(calloc (N,sizeof(int)));


 for (i=0;i<M;i++)
for(j=0;j<N;j++)
fscanf (F2,"%d",&(*(*(a+i)+j)));

printf("ishodnie dannie:\n");
for (i=0;i<M;i++)
{for(j=0;j<N;j++)
printf ("%d  ", (*(*(a+i)+j)));
printf("\n");}
 
 
 for (i=0; i<N; i++)
	for (j=0; j<M; j++)
	{
	 sum=0;
	 for (k=0; k<=i; k++)
	 for (l=j; l<N; l++)
	 sum = sum + (*(*(a+k)+l));
	 (*(*(s+i)+j)) =  sum;
	}
	printf("rezultat: \n");
	for (i=0; i<M; i++)
	{for (j=0; j<N; j++)
	printf ("%3d  ", (*(*(s+i)+j)));
	printf ("\n");
	};

 }
Вот набросал немного,но не работает пишет в 45 строке (*(*(s+i)+j)) = sum; run time error
Код:
 #include <stdio.h>
 #include <stdlib.h>
 #define M 5
 #define N 5
  int **s,**a;
 int i,j,k,l,sum;

 void vvod(int**a,int**s)
 {

 FILE*F2;
F2=fopen("input.txt","r");
a = (int **)(calloc(M,sizeof(int*)));
for(j=0; j<M;j++)
a[j]= (int *)(calloc (N,sizeof(int)));

s = (int **)(calloc(M,sizeof(int*)));
for(j=0; j<M;j++)
s[j]= (int *)(calloc (N,sizeof(int)));


 for (i=0;i<M;i++)
for(j=0;j<N;j++)
fscanf (F2,"%d",&(*(*(a+i)+j)));
}

void vivod(int**a)
{
printf("ishodnie dannie:\n");
for (i=0;i<M;i++)
{for(j=0;j<N;j++)
printf ("%d  ", (*(*(a+i)+j)));
printf("\n");}
 }

void ras4et(int**a,int**s)
{
for (i=0; i<N; i++)
	for (j=0; j<M; j++)
	{
	 sum=0;
	 for (k=0; k<=i; k++)
	 for (l=j; l<N; l++)
	 sum = sum + (*(*(a+k)+l));
	 (*(*(s+i)+j)) =  sum;
	}
	}
	int main(void)
	{
int **s,i,j;
  
  vvod(a);
  vivod(a);
  ras4et(a,s);
  
  printf("rezultat: \n");
	for (i=0; i<M; i++)
	{for (j=0; j<N; j++)
	printf ("%3d  ", (*(*(s+i)+j)));
	printf ("\n");
	};
	}
F1remaster вне форума Ответить с цитированием
Старый 02.06.2009, 16:09   #2
F1remaster
 
Регистрация: 31.05.2009
Сообщений: 5
По умолчанию

Функции вроде несложные,неужели никто не знает?
F1remaster вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простые числа Verochka Помощь студентам 14 02.12.2008 20:30
Простые числа werser Помощь студентам 8 18.06.2008 07:24
Простые дроби 4aineg Паскаль, Turbo Pascal, PascalABC.NET 5 09.12.2006 15:01