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\)
部分输出如下:
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;
}
使用了快速读入
输出如下:
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;
}