📄 xiasanjiaojuzhen.cpp
字号:
// 这是使用应用程序向导生成的 VC++
// 应用程序项目的主项目文件。
#include "stdafx.h"
#using <mscorlib.dll>
using namespace System;
#include <iostream>
using namespace std;
#define Ture 1
#define False 0
#define Ok 1
#define Error 0
#define Overflow -2
typedef int Status;
typedef int Selemtype;
typedef Selemtype ET;
//二维下标为( i , j ),存储空间的一维下标为k,给出k与 i , j
//的关系(1<= i, j <= n , 0<= k < n*(n+1)/2);
ET Tok(int i,int j)
{
if(i<1||j<1)
return Error;
else if(i>=j)
return ((i-1)*i/2+j-1);
else
return((j-1)*j/2+i-1);
}
//输入并存储下三角矩阵;(以行序为主序)
void Input(ET a[],int &n)
{
// cout<<"输入n:"<<endl;
// cin>>n;
cout<<"输入下三角矩阵的元素:"<<endl;
for(int k=0;k<(n+1)*n/2;k++)
cin>>a[k];
}
//读取下三角矩阵中某个元素
Status Getelem(ET a[],int i,int j, ET &e)
{
int k;
k=Tok(i,j);
if(i>=j)
{
e=a[k];
return Ok;
}
else
{
e=0;
return Error;
}
}
//修改下三角矩阵中某元素
Status Change(ET a[] ,int i, int j, ET e)
{
int k;
k=Tok(i,j);
if(i>=j)
{
a[k]=e;
return Ok;
}
else
return Error;
}
//输出下三角矩阵
void Print(ET a[],int &n)
{
int e;
for(int i=1;i<=n;i++)
{
cout<<endl;
for(int j=1;j<=n;j++)
{
Getelem(a,i,j,e);
printf("%3d",e);
}
}
}
//读取下三角矩阵中某个元素
Status Search(ET a[],int n)
{
int i,j,e;
cout<<"输入你要读取元素的坐标:"<<endl;
cout<<"输入i:";
cin>>i;
cout<<endl<<"输入j:";
cin>>j;
if(i>n||j>n)
{
cout<<"##你输入的i或j大于矩阵的维数,错误!!!"<<endl;
return Error;
}
Getelem(a,i,j,e);
cout<<"你查找下标为("<<i<<","<<j<<")的元素是:"<<e<<endl;
return Ok;
}
//修改下三角矩阵中某元素
Status Change(ET a[],int n)
{
int i,j,e;
cout<<"输入你要改变元素的坐标:"<<endl;
cout<<"输入i:";
cin>>i;
cout<<endl<<"输入j:";
cin>>j;
if(i<j)
{
cout<<"##你所输入的i,j,不是矩阵的下三角坐标,错误!!"<<endl;
return Error;
}
if(i>n||j>n)
{
cout<<"##你输入的i或j大于矩阵的维数,错误!!!"<<endl;
return Error;
}
cout<<"输入e的值:"<<endl;
cin>>e;
Change(a,i,j,e);
cout<<"已成功修改!!"<<endl;
return Ok;
}
void windows()
{
printf("\n --------------------------------------------- \n");
printf(" = =\n");
printf(" = 简单下三角矩阵的操作 =\n");
printf(" = =\n");
printf(" -----------------------------------------------=\n");
printf(" = =\n");
printf(" = 1. 建立、输入并存储下三角矩阵 =\n");
printf(" = =\n");
printf(" = 2. 读取下三角矩阵中的某个元素 =\n");
printf(" = =\n");
printf(" = 3. 修改下三角矩阵中某元素 =\n");
printf(" = =\n");
printf(" = 4. 输出矩阵 =\n");
printf(" = =\n");
printf(" = 0. 退出单链表操作 =\n");
printf(" = =");
printf(" \n ---------------------------------------------\n");
}
int main()
{
int a[100];
static int n;
cout<<"输入对称三角矩阵的维数n:"<<endl;
cin>>n;
int choice;
while(1) // 进行一个操作后又回到窗口, 是用户选择下一操作!
{
//system("cls");
windows();
printf(" 欢迎简单栈的操作系统!!请输入您的选择 (0-10): ");
cin>>choice;
getchar();
switch(choice)
{
case 1 : system("cls"); Input(a,n); break;
case 2 : system("cls"); Search(a,n); break;
case 3 : system("cls"); Change(a,n); break;
case 4 : system("cls"); Print(a,n); break;
case 0 : break;
default:system("cls");printf("输入不正确! 请再次输入!!\n");
}
if(choice==0)
break;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -