程序结果三元组不按行序递增输出?如何修改???
/*参考输入数:
0 0 0 0
1 0 0 2
0 0 0 0
0 0 3 0
0 0 0 6*/
#include<iostream>
using namespace std;
#define ElemType int
#define Max 100
const int M=5;
const int N=4;
typedef struct
{
int r;
int c;
ElemType d;
}TupNode;
typedef struct
{
int rows;
int cols;
int nums;
TupNode data[Max];
}TsMat;
void create(TsMat &t,ElemType A[M][N])
{
int i,j;
t.rows=M;t.cols=N;t.nums=0;
for(i=0;i<M;i++)
{ for(j=0;j<N;j++)
if(A[i][j]!=0)
{ t.data[t.nums].r=i;
t.data[t.nums].c=j;
t.data[t.nums].d=A[i][j];t.nums++;
}
}
}
int Value(TsMat &t,ElemType x,int rs,int cs)
{
int i,k=0,s=0;
if(rs>=t.rows|| cs>=t.cols)
return 0;
while (k<t.nums && rs>t.data[k].r) k++;
while (k<t.nums && cs>t.data[k].c) k++;//主要由于此处出现了一点不合理!如何修改??
if(t.data[k].r==rs && t.data[k].c==cs)
t.data[k].d=x;
else
{ for(i=t.nums-1;i>=k;i--)
{
t.data[i+1].r=t.data[i].r;
t.data[i+1].c=t.data[i].c;
t.data[i+1].d=t.data[i].d;
}
t.data[k].r=rs;
t.data[k].c=cs;
t.data[k].d=x;
t.nums++;
}
return 1;
}
int Assign(TsMat t ,ElemType&x,int rs,int cs)
{ int k=0;
if(rs>=t.rows|| cs>=t.cols)
return 0;
while (k<t.nums && rs>t.data[k].r) k++;
while (k<t.nums && cs>t.data[k].c) k++;
if(t.data[k].r==rs && t.data[k].c==cs)
{t.data[k].d=x;return 1;}
else
return 0;
}
void Display(TsMat t)
{
int i;
if (t.nums<=0)return ;
printf("\t%d\t%d\t%d\n",t.rows,t.cols,t.nums);
printf("-------------------------------------\n");
for( i=0;i<t.nums;i++)
printf("\t%d\t%d\t%d\n",t.data[i].r,t.data[i].c,t.data[i].d);
}
void main()
{ElemType x=5,y;
ElemType A[M][N];
for(int i=0;i<M;i++)
for(int j=0;j<N;j++)
cin>>A[i][j];
TsMat t;
create(t,A);
Display(t);
cout<<endl<<endl;
Value(t,x,2,3);
Display(t);
cout<<endl<<endl;
cout<<Assign(t,y,1,2)<<endl;
Display(t);
}
0 0 0 0
1 0 0 2
0 0 0 0
0 0 3 0
0 0 0 6*/
#include<iostream>
using namespace std;
#define ElemType int
#define Max 100
const int M=5;
const int N=4;
typedef struct
{
int r;
int c;
ElemType d;
}TupNode;
typedef struct
{
int rows;
int cols;
int nums;
TupNode data[Max];
}TsMat;
void create(TsMat &t,ElemType A[M][N])
{
int i,j;
t.rows=M;t.cols=N;t.nums=0;
for(i=0;i<M;i++)
{ for(j=0;j<N;j++)
if(A[i][j]!=0)
{ t.data[t.nums].r=i;
t.data[t.nums].c=j;
t.data[t.nums].d=A[i][j];t.nums++;
}
}
}
int Value(TsMat &t,ElemType x,int rs,int cs)
{
int i,k=0,s=0;
if(rs>=t.rows|| cs>=t.cols)
return 0;
while (k<t.nums && rs>t.data[k].r) k++;
while (k<t.nums && cs>t.data[k].c) k++;//主要由于此处出现了一点不合理!如何修改??
if(t.data[k].r==rs && t.data[k].c==cs)
t.data[k].d=x;
else
{ for(i=t.nums-1;i>=k;i--)
{
t.data[i+1].r=t.data[i].r;
t.data[i+1].c=t.data[i].c;
t.data[i+1].d=t.data[i].d;
}
t.data[k].r=rs;
t.data[k].c=cs;
t.data[k].d=x;
t.nums++;
}
return 1;
}
int Assign(TsMat t ,ElemType&x,int rs,int cs)
{ int k=0;
if(rs>=t.rows|| cs>=t.cols)
return 0;
while (k<t.nums && rs>t.data[k].r) k++;
while (k<t.nums && cs>t.data[k].c) k++;
if(t.data[k].r==rs && t.data[k].c==cs)
{t.data[k].d=x;return 1;}
else
return 0;
}
void Display(TsMat t)
{
int i;
if (t.nums<=0)return ;
printf("\t%d\t%d\t%d\n",t.rows,t.cols,t.nums);
printf("-------------------------------------\n");
for( i=0;i<t.nums;i++)
printf("\t%d\t%d\t%d\n",t.data[i].r,t.data[i].c,t.data[i].d);
}
void main()
{ElemType x=5,y;
ElemType A[M][N];
for(int i=0;i<M;i++)
for(int j=0;j<N;j++)
cin>>A[i][j];
TsMat t;
create(t,A);
Display(t);
cout<<endl<<endl;
Value(t,x,2,3);
Display(t);
cout<<endl<<endl;
cout<<Assign(t,y,1,2)<<endl;
Display(t);
}
...全文
相关推荐
29Linux基础命令详解——用户管理.docx
29Linux基础命令详解——用户管理
科技服务机构如何通过数据分析增强服务竞争力?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
vue+springboot基于 Java 的南昌实利广告公司的员工管理系统的设计与实现_oj680rl3毕业设计源码数据库.zip
vue+springboot基于 Java 的南昌实利广告公司的员工管理系统的设计与实现_oj680rl3毕业设计源码数据库.zip
车辆缺陷分割数据集4000张json格式.zip
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):4000 标注数量(json文件个数):4000 标注类别数:1 标注类别名称:["defect"] 每个类别标注的框数: defect count = 8740 总框数:8740 使用标注工具:labelme=5.5.0 所在仓库:firc-dataset 图片分辨率:640x640 标注规则:对类别进行画多边形框polygon 重要说明:可以将数据集用labelme打开编辑,json数据集需自己转成mask或者yolo格式或者coco格式作语义分割或者实例分割 特别声明:本数据集不对训练的模型或者权重文件精度作任何保证
高校如何利用技术转移服务转化科研成果并提升影响力?.docx
高校如何利用技术转移服务转化科研成果并提升影响力?


