数组赋值

lutao118 2009-05-05 10:51:10
给一个一维数组赋值,要求所赋的值为100以内所有奇数



(由于初学C++,不懂,这对我来说就是难题,希望各位高手赐教,也别说看书的话,看过,没找到答案)
...全文
696 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

void main(void)
{
int a[10],i,num;
srand(time(NULL));
for(i=0;i<10;i++)
{
while( (num=rand()%100)%2==0);
a[i]=num;
}

}


写个系统生成随机奇数的,你用用吧
lihuanmei 2009-05-06
  • 打赏
  • 举报
回复

void main(void)
{
int a[10],i,num;
srand(time(NULL));
for(i=0;i<10;i++)
{
while( (num=rand()%100)&1==0);//判奇偶的另一种方法,高效
a[i]=num;
}

}

lihuanmei 2009-05-06
  • 打赏
  • 举报
回复
支持一楼与二楼!
why260371582 2009-05-06
  • 打赏
  • 举报
回复
牛人真多 ...真是菜鸟的天堂阿.
amossavez 2009-05-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 hairetz 的回复:]
C/C++ code
void main(void)
{
int a[10],i,num;
srand(time(NULL));
for(i=0;i<10;i++)
{
while( (num=rand()%100)%2==0);
a[i]=num;
}

}



[/Quote]
good!
Sou2012 2009-05-06
  • 打赏
  • 举报
回复
顶了!
光宇广贞 2009-05-05
  • 打赏
  • 举报
回复
再给一个:

int a[50], i = 50;
while ( ( a[i] = --i << 1 + 1 ) - 1 );
lpf000 2009-05-05
  • 打赏
  • 举报
回复
顶上,都是大侠,,,
接分
hzx716 2009-05-05
  • 打赏
  • 举报
回复
呃!数组申明时要给大小,你已经知道了是100内的奇数了就可以确定是50个
所以:
int a[50];
for(int i=1,j=0;i<100;i+=2,j++)//循环从1至100
{
a[j]=i;//赋值,a[0]=1,a[1]=3,a[2]=5...a[49]=99后i+2为101了,大于100跳出循环
}
光宇广贞 2009-05-05
  • 打赏
  • 举报
回复
int a[50];

for ( int i = 0; i < 50; i++ )
{
a[i] = i << 1 + 1;
}
liliangbao 2009-05-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fibbery 的回复:]
C/C++ codeint a[50];
int i=0;
for(;i<50;++i)
a[i]=2*i+1;
[/Quote]
up
windsting 2009-05-05
  • 打赏
  • 举报
回复
把你能写的代码写出来,把你不会的那个操作留一个空行(最好加个注释),
我可以给你补完,并在我认为需要的地方给你一个解释,,
如果你一点代码都不写,我帮不了你。

另外,一楼的解答已经够准确的了。
adventurelw 2009-05-05
  • 打赏
  • 举报
回复
看书只是寻求方法,哪有什么答案可找。

数组,既然要求是奇数数组,那么可以将数组声明为int,int array[n](其中n必须是字面值或者const值或者其组合);
然后赋值,因为有很多元素,最好用一个有限循环遍历每个元素
for(int i = 0; i < n; ++i)//赋值的个数不能超过数组元素个数,数组下标从0开始,所以设定循环条件为i < n即可
接下来,如果是要按照100以内的奇数顺序赋值,就是array[i] = 2 * i + 1(其结果是1,3,5,7…不必多言)
如果是要随机赋予100以内的奇数,稍微麻烦点
rand() % 100可以生成比100小的所有正整数
判断生成的是否为奇数,用if条件句:if((rand() % 100) % 2 == 1),对2取模的结果值是两种,0和1,如果是1,则说明除以二的话余数为一,自然为奇数,将其赋给数组便是了。因为rand()是随机数,所以在判断是否为奇数时,最好能够同时将其赋给一个变量保存数据。
winingsky 2009-05-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fibbery 的回复:]
C/C++ codeint a[50];
int i=0;
for(;i<50;++i)
a[i]=2*i+1;
[/Quote]
czqfs 2009-05-05
  • 打赏
  • 举报
回复
专业
s_xgwang 2009-05-05
  • 打赏
  • 举报
回复
对传入的数组进行随机赋 100 以内的奇数值。

void GetValue(int pList[], int len)
{
srand(time(NULL);
if(len == 0) return;
int i = len;
while(i>0)
{
int tmp = rand()%100;
if(tmp == 0) continue;
if(tmp&1 != 0) continue;
pList[--i] = tmp;
}
}
fibbery 2009-05-05
  • 打赏
  • 举报
回复
int a[50];
int i=0;
for(;i<50;++i)
a[i]=2*i+1;

65,210

社区成员

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

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