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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2013, 03:53   #1
*Fantom*
Пользователь
 
Регистрация: 28.05.2013
Сообщений: 32
По умолчанию c++

нужно переделать прогу чтобы размерность матрицы вводилась при выполнении программы и само решение задачи было оформлено в виде функции, которой передается матрица и ее размерность.
Задание звучит так:
Заполнить матрицу случайными числами. Розбити матрицу на квадраты размером 3х3. В центре каждого квадрата поместить сумму остальных элементов квадрата.
Вот моя прога)
Код:
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#define S 4
double n,m;	
int i,j;
int A[S][S];
int main(void) {
srand(time(0));
for(i=0;i<S;i++){
	for(j=0;j<S;j++){
		A[i][j]=rand()%5;
		printf("%2d",A[i][j]);}
	printf("\n");}
for(i=0;i<S;i++){
	for(j=0;j<S;j++){
		m=(i+2)%3;
		n=(j+2)%3;
		if( n==0 && m==0 )
			A[i][j]=A[i-1][j-1]+A[i-1][j]+A[i-1][j+1]+A[i][j+1]+A[i+1][j+1]+A[i+1][j]+A[i+1][j-1]+A[i][j-1];}}
printf(" poly4ena9 matrica:\n");
for(i=0;i<S;i++){
	for(j=0;j<S;j++){
printf("%3d ",A[i][j]);}
	printf("\n");}
  getch();  
  return 0;}
*Fantom* вне форума Ответить с цитированием
Старый 28.05.2013, 12:54   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,609
По умолчанию

Примерно так
Код:
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <malloc.h>

void f1(int** m, int sz)
{
 int i, j;
 int a, b;

 for (i = 0; i < sz; i++) 
 {
  for (j = 0; j < sz; j++) 
  {
   m[i][j] = rand()%5; 
   printf ("%d ", m[i][j]); 
  }
  printf("\n"); 
 }

 printf("\n"); 

 for (i = 0; i < sz; i++) 
 {
  for (j = 0; j < sz; j++) 
  {
   a = (i+2)%3; 
   b = (j+2)%3; 
   if (a == 0 && b == 0 && i +1 < sz && j + 1 < sz) 
   {
     
     m[i][j] = m[i-1][j-1] + m[i+1][j+1] + m[i-1][j] + m[i][j-1] + m[i][j+1] + m[i+1][j] + m[i-1][j+1] + m[i+1][j-1];} 
   } 
 }

 for (i = 0; i < sz; i++) 
 {
  for (j = 0; j < sz; j++) 
  {
    printf ("%d ", m[i][j]); 
  } 
  printf("\n"); 
 }

 printf("\n"); 
}

int main()
{
 int i, j, n;
 int** m;
 scanf("%d", &n);
 m = (int**) malloc( n * sizeof(int*) ); for (i=0; i< n; i++) m[i] = (int*) malloc( n * sizeof(int) );
 f1(m, n);

 for (i = 0; i < n; i++) 
 {
  for (j = 0; j < n; j++) 
  {
    printf ("%d ", m[i][j]); 
  } 
  printf("\n"); 
 }

 for (i=0; i< n; i++) free (m[i]); free(m);
 return 0;
}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 28.05.2013, 13:10   #3
*Fantom*
Пользователь
 
Регистрация: 28.05.2013
Сообщений: 32
По умолчанию

Спасибо огромное очень помог)
*Fantom* вне форума Ответить с цитированием
Ответ


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