Lab1:数据组织基础方法及创新应用(基础)

发布时间 2023-10-10 20:01:01作者: conprour

1.数组定义及简单使用

1)分别定义一个 int 型一维数组和二维数组,并通过输出验证各种初始化方法;

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int INF = 0x3f3f3f3f,N=5;
int a[15],b[15][15];
void work1() //循环初始化数组 
{
  for(int i=1;i<=N;i++) a[i]=1;
  for(int i=1;i<=N;i++) 
  	for(int j=1;j<=N;j++) b[i][j]=2;
  for(int i=1;i<=N;i++) printf("a[%d]=%d\n",i,a[i]);
  for(int i=1;i<=N;i++) 
  	for(int j=1;j<=N;j++) printf("b[%d][%d]=%d\n",i,j,b[i][j]);
}
void work2() //memset函数初始化数组 
{
  memset(a,-1,sizeof(a));
  memset(b,0,sizeof(b));
  for(int i=1;i<=N;i++) printf("a[%d]=%d\n",i,a[i]);
  for(int i=1;i<=N;i++) 
  	for(int j=1;j<=N;j++) printf("b[%d][%d]=%d\n",i,j,b[i][j]);
}
void work3() //直接初始化数组 
{
  int t[15]={0};
  int x[15][15]={0,0,1,1,1,1};
  for(int i=1;i<=N;i++) printf("t[%d]=%d\n",i,t[i]);
  for(int i=0;i<=N;i++) 
  	for(int j=0;j<=N;j++) printf("x[%d][%d]=%d\n",i,j,x[i][j]);	
}
int main()
{
  work1();
  work2();
  work3();
  return 0; 
}

分别用三种方法初始化数组,详见注释。
其中需要注意的是,a[10]={} 这种初始化方法只能在定义数组的时候使用,已经声明的数组不可以这样赋值。
其中第三种初始化方法,二维数组初始化若不全部给出,则后面的数组元素均为 \(0\)
部分输出如下:
image
image

2)定义 int,char 一维数组,键盘输入并输出。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int INF = 0x3f3f3f3f;
inline ll read()
{
  ll ret=0;char ch=' ',c=getchar();
  while(!(c>='0'&&c<='9')) ch=c,c=getchar();
  while(c>='0'&&c<='9') ret=(ret<<1)+(ret<<3)+c-'0',c=getchar();
  return ch=='-'?-ret:ret;
}
int a[11];
char c[11]; 
int main()
{
  for(int i=1;i<=10;i++) a[i]=read(); //快速读入 
  cin>>c;
  for(int i=1;i<=10;i++) cout<<a[i]<<' ';
  cout<<c;
  return 0;
}

使用了快速读入
输出如下:image

2.结构体定义及简单使用

1)定义结构体,初始化,输出验证

2)定义结构体,输入数据,输出验证

#include<bits/stdc++.h>
using namespace std;
struct edge{int nxt,to,w;}a;
int main()
{
	//初始化结构体 
	a.nxt=1,a.to=2,a.w=3;
	printf("%d %d %d\n",a.nxt,a.to,a.w);
	//输入结构体 
	cin>>a.nxt>>a.to>>a.w;
	printf("%d %d %d\n",a.nxt,a.to,a.w);
	return 0;
}

image

指针定义及简单使用