一道笔试题

dongxiaojiehit 2008-11-01 03:38:34

动态申请一个100*200二维整型数组,并给每个元素赋值为50!
给每个元素赋值不用循环,可以有别的办法吗?
...全文
121 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwq119119 2008-11-02
  • 打赏
  • 举报
回复
GEN TIE
dongxiaojiehit 2008-11-01
  • 打赏
  • 举报
回复
只可惜还是循环!
dongxiaojiehit 2008-11-01
  • 打赏
  • 举报
回复
太强了,佩服!
MilanSpiRiT 2008-11-01
  • 打赏
  • 举报
回复

#include <stdlib.h>
#include <stdio.h>

const int a1 = 100;
const int a2 = 200;
void FillCol(int **p_array, int row, int col);
void FillRow(int **p_array, int row);

void main()
{

int i,j;
int **p_array;

//开辟二维数组空间
p_array = (int**)calloc(a1,sizeof(int *));
for(i=0; i<a1; i++)
p_array[i] = (int*)calloc(a2,sizeof(int));

//填充
FillRow(p_array, 0);

//输出
for(i=0; i<a1; i++)
{
for(j=0; j<a2; j++)
printf("%d ", p_array[i][j]);
printf("\n");
}

//释放空间
for(i=0; i<a1; i++)
free(p_array[i]);
free(p_array);
}

void FillCol(int **p_array, int row, int col)
{
if(col<a2)
{
p_array[row][col] = 50;
FillCol(p_array, row, col+1);
}
}

void FillRow(int **p_array, int row)
{
if(row<a1)
{
FillCol(p_array, row, 0);
FillRow(p_array, row+1);
}
}


用递归填充的,行列分开函数写了,放一个函数里栈会满
xxgamexx 2008-11-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jia_xiaoxin 的回复:]

int * lp = new int[100*200];
memset(lp, 0, 100 * 200);
[/Quote]




int * lp = new int[100*200];
memset(lp, 50, 100 * 200);

应该是这样吧~
dongxiaojiehit 2008-11-01
  • 打赏
  • 举报
回复
So clever!
  • 打赏
  • 举报
回复
memset 是直接内存拷贝,没有用到循环,速度还快。
dongxiaojiehit 2008-11-01
  • 打赏
  • 举报
回复
对,看看有没有别的办法。
lily604 2008-11-01
  • 打赏
  • 举报
回复
不知道memset是不是也用循环实现的
jia_xiaoxin 2008-11-01
  • 打赏
  • 举报
回复
可以这样:


#include <algorithm>
#include <iostream>

using namespace std;
void fun(int &data)
{
data = 50;
}

int main()
{
int * lp = new int[100*200];
for_each(lp, lp+100*200, fun);
cout << lp[10] << endl;
return 0;
xianduan 2008-11-01
  • 打赏
  • 举报
回复
构造函数也要用到循环滴。。。对啊,递归不错
jia_xiaoxin 2008-11-01
  • 打赏
  • 举报
回复

int * lp = new int[100*200];
memset(lp, 0, 100 * 200);
太乙 2008-11-01
  • 打赏
  • 举报
回复
memcpy
iamliadai 2008-11-01
  • 打赏
  • 举报
回复
很简单的递归就可以
Vegertar 2008-11-01
  • 打赏
  • 举报
回复
所谓的不用循环是指不允许我们直接使用循环?
Vegertar 2008-11-01
  • 打赏
  • 举报
回复
如果是类的话还可以用构造函数...
iamliadai 2008-11-01
  • 打赏
  • 举报
回复
一个一个的来
oliver_wei 2008-11-01
  • 打赏
  • 举报
回复
可以用vetor?

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧