При компиляции программы выскакивает ошибка
Добрый день.
Пытался разобраться своими силами и силами знакомых - не сложилось.
В общем задача такая:
Все работает, я ее реализовал так:
Код:
#include <stdio.h>
#include <stdlib.h>
int mas[9][9];
int i,stb,j,x,n,str,stbm;
int main(void) {
randomize();
for (i=0; i<9; i++)
{for (j=0; j<9; j++)
{mas[i][j]=random(99);}}
for (i=0; i<9; i++)
{for (j=0; j<9; j++)
{printf(" %d",mas[i][j]);}
printf("\n");}
for (x=0; x<9; x++){
str=0;
for (j=0; j<9; j++) {str=str+mas[x][j];}
stb=0;
for (i=0; i<9; i++) {stb=stb+mas[x][i];}
mas[x][x]+=stb;
mas[x][x]+=str;
}
printf("\n");
for (i=0; i<9; i++)
{for (j=0; j<9; j++)
{printf(" %d",mas[i][j]);}
printf("\n");}
n=getchar();
return(0);}
Но теперь появились дополнительные условия: - размерность матрицы должна вводиться при выполнении программы;
- само решение задачи должно быть оформлено в виде функции, которой передается матрица и ее размерность.
И вот тут появилась проблема, программа не компилируется.
Текст самой программы:
Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
void vyvod(int far **arr, int s)
{int i,j;
for (i=0; i<s; i++)
{for (j=0; j<s; j++)
{printf(" %d",arr[i][j]);}
printf("\n");};
};
void sum(int far **arr, int s)
{
int x,j,i,str,stb;
for (x=0; x<s; x++){
str=0;
for (j=0; j<s; j++) {str=str+arr[x][j];}
stb=0;
for (i=0; i<s; i++) {stb=stb+arr[x][i];}
arr[x][x]+=stb;
arr[x][x]+=str;};
};
int main() {
int *cr,i,j,n;
int far **mas;
randomize();
printf("vvedite razmernost matricy ");
scanf("%d",&n);
printf("%d",n);
mas=(int far **)malloc(sizeof(int *)*n);
for (i=0; i<n; i++)
{mas[i]=(int far *)malloc(sizeof(int)*n);};
for (i=0; i<n; i++)
{for (j=0; j<n; j++)
{mas[i][j]=random(80)+15;}};
vyvod(mas,n);
sum(mas,n);
printf("\n");
vyvod(mas,n);
printf("\n");
return(0);}
Вот что выдает:
Работает, если размерность ему дать меньше трех.
При хорошем раскладе (при тех же данных выдает массив, обрабатывает, и выдает новый массив, но в последней строке огромные цифры (19650, 25453...) - по программе их не должно быть.
Извините, скриншот не удалось снять.
Еще один раз (ничего не менял) была "ошибка обращения к процессору.... и адрес IP:**** и код fc ff ff fa...
Вот такие дела.
Что делать?
Извините что много букв.
|