二维数组的使用(new,delete,初始化,输出)
来源:互联网 发布:海淘宝宝衣服 编辑:程序博客网 时间:2024/06/05 00:30
今天去面试的面试题:
打印:
*
***
*****
*******
*********
***********
...
函数是:void printf_A(int n)
我面试的时候写的是:
void printf_A(int n)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n - i - 1; j++)
cout << " ";
for (int k = 1; k <= 2 * i + 1; k++)
cout << "*";
cout << endl;
}
}
这样确实没有错,但是当时想的是用二维数组写,和打印杨辉三角一样打印,后来实在不记得了,时间有限,也没多想,但是回来这样写,用了二维数组:
void printf_t(int n)
{ //new一个二维数组
char **a;
a = new char*[n]; //n个char*
int line = 2 * (n - 1) + 1; //列数
for (int i = 0; i < n; i++)
{
a[i] = new char[line]; //每个char*指向line个元素的数组头地址
}
//为二维数组赋值,使得二维数组里的值全都为' ',为需要的元素赋值为‘*’;
for (int i = 0; i < n; i++)
{
int offset = n - i - 1;//n-i-1个偏移量;
for (int k = 0; k < line; k++)
a[i][k] = ' ';
for (int j = 0; j < 2 * i + 1; j++) //第i行一共有2*i+1个‘*’;
a[i][offset + j]='*'; //从偏移量开始赋值
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < (2 * (n - 1) + 1); j++)
cout << a[i][j];
cout << endl;
}
for(int i=0;i<n;i++)
delete[] a[i];
delete[] a;
{ //new一个二维数组
char **a;
a = new char*[n]; //n个char*
int line = 2 * (n - 1) + 1; //列数
for (int i = 0; i < n; i++)
{
a[i] = new char[line]; //每个char*指向line个元素的数组头地址
}
//为二维数组赋值,使得二维数组里的值全都为' ',为需要的元素赋值为‘*’;
for (int i = 0; i < n; i++)
{
int offset = n - i - 1;//n-i-1个偏移量;
for (int k = 0; k < line; k++)
a[i][k] = ' ';
for (int j = 0; j < 2 * i + 1; j++) //第i行一共有2*i+1个‘*’;
a[i][offset + j]='*'; //从偏移量开始赋值
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < (2 * (n - 1) + 1); j++)
cout << a[i][j];
cout << endl;
}
for(int i=0;i<n;i++)
delete[] a[i];
delete[] a;
}
有什么不同呢?实际用途呢?
阅读全文
0 0
- 二维数组的使用(new,delete,初始化,输出)
- 二维数组的动态分配(new)、初始化(memset)和撤销(delete)
- C++数组(一维、二维、三维)的动态分配new、初始化memset和释放delete
- 模板:使用new delete 创建二维数组
- 使用new和delete创建二维数组
- 二维数组的new 和 delete
- 二维数组的动态分配(new)、初始化(…
- 二维数组的动态分配(new)、初始化(…
- 二维数组与new/delete
- 数组的动态分配(new)、初始化(memset)和撤销(delete)
- C++数组的动态分配(new)、初始化(memset)和撤销(delete)
- 如何new与delete各种二维数组
- 如何new与delete各种二维数组
- 如何new与delete各种二维数组
- 用new开辟二维数组空间,用delete释放由new产生的二维数组数组空间
- 动态分配内存 and malloc&new and 数组的动态分配、初始化(memset)和撤销(delete)
- 二维数组的初始化
- 二维数组的初始化
- 推荐一款压缩js工具--yuicompressor-2.4.2.jar
- 实训第七天笔记
- Windows server 2012配置Nginx自启动
- 工厂模式
- android员工管理系统小程序
- 二维数组的使用(new,delete,初始化,输出)
- 51Nod-1765-谷歌的恐龙
- Android系列之夜间模式和日间模式的功能实现
- Eclipse新建一个web项目没有自动生成web.xml
- 设计模式(十二)adapter
- ATC作业
- Swing 利用线程来绘制两个运动的小球
- Docker aufs存储驱动layer、diff、mnt目录的区别
- OpenCV中使用imread函数读取图片失败的原因