为什么输出矩阵的时候。出现一堆-858993460?
程序代码:
#include<stdio.h> #include<stdlib.h> #define MAXSIZE 12500//非0元的最大个数 #define random() rand()%10+0//a=rand()%(d-t)+t:生成一个[t,d)区间内的整数 #define m 10 #define n 10 #define C 4 #define OK 1 #define ERROR 0 typedef int ElemType; typedef int Status; typedef struct { int i,j; ElemType e; }Triple;//三元组 typedef struct { Triple data[MAXSIZE+1]; int mu; int nu; int tu;//矩阵行数,列数,非0元个数 }TSMatrix;//稀疏矩阵:sparse matrix Status RandomSparseMatrix(int (&Arr)[m][n]) //随机生成一个m行n列,并且含有C个非0元的稀疏矩阵 { int i=0,j=0,k=1,p=1; int data[C]; for(i=0;i<C;i++)//随机生成非0元的值,存到数组a[C]里面 { srand(i);//随机数种子在变化 data[i]=rand()%100; } while(p<=C) { for(i=0;i<C;i++) { srand(p); Arr[random()][random()]=data[i];//随机生成一个位置,该位置放置非0元 p++; } } for(i=0;i<m;++i) { for(j=0;j<n;++j) { if(Arr[i][j]==NULL)//如果该位置值为空,则将该位置的值赋值为0 Arr[i][j]=0; } } printf("Array[%d][%d] is: \n",m,n); for(i=0;i<m;++i) { for(j=0;j<n;++j) { printf("%d\t", Arr[i][j]); // '\t'表示横向制表符 } printf("\n"); } return 0; } void main() { int Arr[m][n]; RandomSparseMatrix(Arr); }
运行结果.zip
(62.85 KB)