1、隨機產生一個以三元組順序表存盤的稀疏矩陣,具體要求如下:
① 矩陣的行數不低于8,列數不低于12。
② 非零元的個數、每個非零元的位置及值均隨機產生。
③ 列印轉置前后的矩陣以驗證正確性。
我的代碼:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define SIZE 96
typedef int ElemType;
typedef struct
{
int i,j;
ElemType v;
}Triple;
typedef struct
{
Triple date[SIZE];
int m,n,t;
}Matrix;
void init(Matrix &A)
{
srand(time(NULL));
printf("%d",A.t=rand()%97);
for(int p=0;p<A.t;p++)
{
printf("%3d",A.date[p].i=rand()%8);
printf("%3d",A.date[p].j=rand()%12);
printf("%3d",A.date[p].v=rand()%10);
printf("\n");
}
}
void print(Matrix &A)
{
A.m=8;
A.n=12;
for(int p=0,i=0;i<A.m;i++)
{
for(int j=0;j<A.n;j++)
{
if(p<A.t&&A.date[p].i==i&&A.date[p].j==j)
printf("%2d",A.date[p++].v);
else
printf("%2d",0);
}
printf("\n");
}
}
int main()
{
Matrix A;
init(A);
print(A);
}
為什么我這個程式運行出來的矩陣不是隨機的,而且和我想要的矩陣不一樣?求告知。
uj5u.com熱心網友回復:
為了方便,我就設定矩陣為8×12uj5u.com熱心網友回復:
我運行了好幾遍,亂數是對的,但是資料好像不能完全傳到printf函式里,得到的矩陣非零元只有一兩個。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/87343.html
標籤:C++ 語言
上一篇:單元測驗工具求推薦
下一篇:tcp接收資料問題
