#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int col;
int row;
int value;
}MATRIX;
int **array(int rows, int cols)
{
int **arr;
int i;
arr = (int **)malloc(sizeof(int) * rows);
for (i = 0; i < rows; i++)
arr[i] = (int *)malloc(sizeof(int) * cols);
return arr;
}
float **farray(int rows, int cols)
{
float **arr;
int i;
arr = (float **)malloc(sizeof(float) * rows);
for (i = 0; i < rows; i++)
arr[i] = (float *)malloc(sizeof(float) * cols);
return arr;
}
int *vector(int rows)
{
int *vec;
vec = (int *)malloc(sizeof(int) * rows);
return vec;
}
MATRIX *matrix(int size){
MATRIX *mat;
mat=(MATRIX *)malloc(sizeof(MATRIX) * (size+1));
return mat;
}
void freeVector(int *vec)
{
free(vec);
}
void freeArray(int **arr, int rows, int cols)
{
int r, c;
for (r = 0; r < rows; r++)
freeVector(arr[r]);
free(arr);
}
void freeMatrix(int *mat)
{
free(mat);
}
void printArray(int **arr, int rows, int cols, char *msg)
{
int r, c;
printf("%s\n", msg);
for (r = 0; r < rows; r++)
{
for (c = 0; c < cols; c++)
printf("\t %d", arr[r][c]);
printf("\n");
}
}
void printfArray(float **arr, int rows, int cols, char *msg)
{
int r, c;
printf("%s\n", msg);
for (r = 0; r < rows; r++)
{
for (c = 0; c < cols; c++)
printf("\t %f", arr[r][c]);
printf("\n");
}
}
void sparseArray(int** arr, MATRIX* mat, int rows, int cols, int size){
int i,j;
mat[0].row=rows;
mat[0].col=cols;
mat[0].value=size;
int k=1;
for (i = 0; i < rows; i++)
for (j = 0; j < cols; j++)
if (arr[i][j]!=0)
mat[k].row=i;
mat[k].col=j;
mat[k].value=arr[i][j];
k++;
}
int main(){
int **a;
int i,j;
a=array(8,9);
for ( i = 0; i < 8; i++)
for ( j = 0; j < 9; j++)
a[i][j] = 0;
a[0][0]=1;
a[7][6]=2;
printArray(a,8,9,"A");
MATRIX s[3];
sparseArray(a,s,8,9,2);
}
희소행렬 구하는 거 0 아닌 값 구조체에다 딱 넣는건데 왜 그게 안돼
sparseArray 함수 중괄호 어디갔어
파 이 썬 식 사 고 방 식 을 버 려 라
아
중괄호 쓰는 언어들은 한줄 짜리도 중괄호 쓰자
원래는 쓰는데 주어진 코드에 없어서 대충했더니 이래되네..