a=array(1,2,3,4,5,67,8,9,10) b=array(2,4,6,8,10,1

有一个整型数组,其中存放{1,2,3,4,5,6,7,8,9},请将该序列倒序存放并输出。用jav_百度知道
有一个整型数组,其中存放{1,2,3,4,5,6,7,8,9},请将该序列倒序存放并输出。用jav
有一个整型数组,其中存放{1,2,3,4,5,6,7,8,9},请将该序列倒序存放并输出。用java语言。
我有更好的答案
方法不少,最直接的一种:倒叙存放,然后打印输出:public&class&ReverseArray&{&&&&public&static&void&main(String[]&args)&{&&&&&&&&int&arr[]&=&new&int[]&{&1,2,3,4,5,6,7,8,9&};&&&&&&&&&&&&&&&&for(int&i&=&0;&i&&&arr.length&/&2;&i++){&&&&&&&&&&&&int&temp&=&arr[i];&&&&&&&&&&&&arr[i]&=&arr[arr.length&-&i&-&1];&&&&&&&&&&&&arr[arr.length&-&i&-&1]&=&&&&&&&&&}&&&&&&&&for&(int&i&=&0;&i&&&arr.&i++)&{&&&&&&&&&&&&//System.out.println(arr[i]);&//每个一行&&&&&&&&&&&System.out.print(&&&+arr[i]);&//全部一行&&&&&&&&}&&&&&&&&&&&System.out.println();&&&&}}结果:&9&8&7&6&5&4&3&2&1
采纳率:87%
int Arr_m1[]=new int[10];
Arr_m1[0]=1;
Arr_m1[1]=2;
Arr_m1[2]=3;
Arr_m1[3]=4;
Arr_m1[4]=5;
Arr_m1[5]=6;
Arr_m1[6]=7;
Arr_m1[7]=8;
Arr_m1[8]=9;
Arr_m1[9]=10;
for(int y=Arr_m1.length-1;y&=0;y--)
System.out.print(Arr_m1[y]+&|&);
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。点击这里,将文章分享到自己的动态
【前端面试题】生成[1,2,3,4,5,6,7,8,9]的随机数组
前言:相对来说这个题目很简单,写这个单纯是为了反思,本人小白一个,正走在变成大神的路上,如有大神偶然路过,勿喷。
今天去面试,遇到了这个题目,因为是比较喜欢的公司,所以有点紧张,思绪凌乱,没写出来,没错我就是这么有出息,尴尬脸。
回到家,赶紧吃了根老冰棍压压惊,认真脸。
整理 了下思路,当时就是因为太急了,失去了平常的节奏,一心只想着怎么写出最终效果,搞笑,那怎么可能嘛,除非是大神,很明显我不是,丧气脸。
不废话了,上代码+思路。
var randarr=new Array();
第一步:当然是声明一个存放随机数的数组啦
var randarr=new Array();
for (var i = 0; i&9; i++) {
var num=Math.floor(Math.random()*10);//随机生成0-9之间的整数(包括0和9),因为用了floor向下取整
randarr[i]=//把生成的随机数放进数组
console.log(randarr)//打印当前数组
第二步:数组里面有1-9,9个值,很明显需要循环,那么在什么条件下循环呢?因为数组是从0计数的,所以循环条件i的值取0-8,即i&9或i&=8。
我在最后打印了下结果,运行结果:[4, 8, 5, 5, 9, 4, 0, 2, 4]
是生成了9个数,但是很明显有3个错误:
1.结果中含有&0&
2.有重复的数字
3.数字没排序
只要我们把这3个问题解决了不就好了,是不是?
第一个是不是最简单呀,柿子要挑软的捏。
var randarr=new Array();
for (var i = 0; i&9; i++) {
var num=Math.floor(Math.random()*10);//随机生成0-9之间的整数(包括0和9),因为用了floor向下取整
if (num&0) {//过滤掉随机数为0的情况
randarr[i]=//把生成的随机数放进数组
console.log(randarr)//打印当前数组
第三步:随机数放进数组前先判断下是不是大于0,然而运行结果却是这样的:[8, 8, 5, 4: 4, 5: 8, 6: 3, 7: 5, 8: 1]
什么鬼,只有8个数,噢,是因为有一个值为0,被残忍的关在数组外了,但是它还穿着带有编号的衣服,有编号的衣服就那么多,那怎么办呢?那我们把不在数组内值的衣服都脱掉,给新的符合条件的随机数穿上,阴险脸,来个else
var randarr=new Array();
for (var i = 0; i&9; i++) {
var num=Math.floor(Math.random()*10);//随机生成0-9之间的整数(包括0和9),因为用了floor向下取整
if (num&0) {//过滤掉随机数为0的情况
randarr[i]=//把生成的随机数放进数组
i=i-1;//如果随机数为0的话,就不让它占用i的值
console.log(randarr)//打印当前数组
上面为第三步的改进版,啰嗦了点,为了让自己明天还看的懂,值得。
上面运行结果:[6, 2, 6, 4, 3, 1, 5, 8, 3]
好,第一个问题解决了,我们来看第二个问题。
去重,那不就是生成的随机数放进数组之前和数组里面已有的数字比较下,如果都不一样,然后再放进去啊,如果有一个一样的,那是不是也要把它带有编号的衣服脱掉啊,好,看代码。
var randarr=new Array();
for (var i = 0; i&9; i++) {
var num=Math.floor(Math.random()*10);//随机生成0-9之间的整数(包括0和9),因为用了floor向下取整
if (num&0) {//过滤掉随机数为0的情况
for (var n = 0; n & randarr. n++) {//遍历数组中已有数字
if (num!=randarr[n]) {//依次判断新的随机数是否已在数组中,如果不在把新随机数加进数组
randarr[i]=//把生成的随机数放进数组
i=i-1;//如果随机数为0的话,就不让它占用i的值
console.log(randarr)//打印当前数组
运行代码,一个数字也没了!!!!!
哪里出问题了呢?噢,把随机数放进数组的判断出问题了,太心急了。。
现在是不是新的随机数只要不和数组中已有值中任何一个不同都可以放进去了啊?
那怎么解决呢?
那我们加个计数器,如果有一个不相等的话计数器就+1,那计数器最终的值和已有数组的length相等是不是就说明新的随机数和当前数组中所有的值都不一样啊?
那计数器加哪呢?肯定要加在生成随机数循环的里面是吧,因为它每次生成新的随机数时计数器都要清空的不是?好,思路有了,上代码。
var randarr=new Array();
for (var i = 0; i&9; i++) {
var count=0;//定义一个计数器,并清空
var num=Math.floor(Math.random()*10);//随机生成0-9之间的整数(包括0和9),因为用了floor向下取整
if (num&0) {//过滤掉随机数为0的情况
for (var n = 0; n & randarr. n++) {//遍历数组中已有数字
if (num!=randarr[n]) {//依次判断新的随机数是否已在数组中,如果不在,计数器+1
count=count+1;//当新随机数和数组中已有值不相等时,计数器+1
i=i-1;//如果随机数为0的话,就不让它占用i的值
console.log(randarr)//打印当前数组
计数器加好了,怎么让它发挥作用呢?
刚才也说了,当计数器的最终值和已有数组的length相等,就说明新的随机数和当前数组中所有的值都不一样,那是不是就可以把新的随机数放进数组里啦?看代码。
var randarr=new Array();
for (var i = 0; i&9; i++) {
var count=0;//定义一个计数器,并清空
var num=Math.floor(Math.random()*10);//随机生成0-9之间的整数(包括0和9),因为用了floor向下取整
if (num&0) {//过滤掉随机数为0的情况
for (var n = 0; n & randarr. n++) {//遍历数组中已有数字
if (num!=randarr[n]) {//依次判断新的随机数是否已在数组中,如果不在,计数器+1
count=count+1;//当新随机数和数组中已有值不相等时,计数器+1
if (count==randarr.length) {//当计数器最终的值和当前数组的length值相等时
randarr[i]=//把生成的新随机数放进数组
i=i-1;//只要有一个不相等,说明数组中已有,那就不让它占用i的值
i=i-1;//如果随机数为0的话,就不让它占用i的值
console.log(randarr)//打印当前数组
上面代码,运行结果:[9, 7, 5, 4, 2, 1, 3, 6, 8]
不容易啊,眼泪都要出来了。
最后一步,给数组排序,大家都知道数组的sort()方法,但是数字排序会出现问题,比如:1,2,11,22进行排序的话它会输出:1,11,2,22 它只会根据第一位数字进行排序,所以我们要加一个排序函数。
//数字排序函数,从小到大是a-b,从大到小是b-a,字母只用sort()
function sortarr(a,b){
return a-b;
最终的代码:
var randarr=new Array();
for (var i = 0; i&9; i++) {
var count=0;//定义一个计数器,并清空
var num=Math.floor(Math.random()*10);//随机生成0-9之间的整数(包括0和9),因为用了floor向下取整
if (num&0) {//过滤掉随机数为0的情况
for (var n = 0; n & randarr. n++) {//遍历数组中已有数字
if (num!=randarr[n]) {//依次判断新的随机数是否已在数组中,如果不在,计数器+1
count=count+1;//当新随机数和数组中已有值不相等时,计数器+1
if (count==randarr.length) {//当计数器最终的值和当前数组length的值相等时
randarr[i]=//把生成的新随机数放进数组
i=i-1;//只要有一个不相等,说明数组中已有,那就不让它占用i的值
i=i-1;//如果随机数为0的话,就不让它占用i的值
console.log(randarr.sort(sortnum))//调用数组数字排序函数打印当前数组
//数字排序函数,从小到大是a-b,从大到小是b-a,字母只用sort()
function sortnum(a,b){
return a-b;
运行结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]
个人认为,当没有思路时,不妨先从简单的做起,所谓瓜熟蒂落,水到渠成,生活不就是不断发现问题,解决问题吗?
日编辑【延伸】
看了大家的评论,感觉受益匪浅。特此贴上改进版的代码,可以自定义生成min到max的随机数数组
var randarr=new Array(),//声明存储随机数的数组
minnum=2,//声明数组中最小的数
maxnum=5,//声明数组中最大的数
arrlength=maxnum-minnum+1;//数组最终的长度,不懂的同学掰手指算下。。。
for (var i = 0; i & i++) {//生成数组的循环
var count=0,//初始化一个计数器
num=Math.floor(Math.random()*arrlength+minnum);
//注意这里的arrlength=maxnum-minnum+1
//意思是生成一个minnum到maxnum之间的随机数(包括minnum和maxnum)
for (var j = 0; j & randarr. j++) {//遍历当前已有数组
if (num!=randarr[j]) {//判断新生成的随机数是否已存在数组里
count=count+1;//如果不一样计数器依次+1
if (count==randarr.length) {//如果计数器最终的值和当前已有数组的length值相等,说明新的随机数不在数组里
randarr.push(num);//那就把新的随机数加到数组里
i=i-1;//如果新生成的随机数已在数组里,释放当前i的值
//console.log(randarr);//这个是输出没有排序的数组
//为了方便大家看效果,特意排序了下,排序函数上面讲过的哦?
console.log(randarr.sort(function(a,b){return a-b;}));
本文原创发布于慕课网 ,转载请注明出处,谢谢合作
若觉得本文不错,就分享一下吧!
评论加载中...
看过此文的用户,还看了以下文章
正在加载中
作者相关文章int a[][3]={1,2,3,4,5,6,7};a 数组第一维大小多少?
[问题点数:40分,结帖人hongyu315]
int a[][3]={1,2,3,4,5,6,7};a 数组第一维大小多少?
[问题点数:40分,结帖人hongyu315]
只显示楼主
取消只显示楼主
匿名用户不能发表回复!|您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
C语言实验五数组程序设计解答.doc 15页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
C语言实验五数组程序设计解答
你可能关注的文档:
··········
··········
数组应用(二)
一、实验目的
掌握二维数组的定义和初始化。
掌握二维数组元素的引用及其应用。
掌握字符数组的定义和初始化。
掌握字符数组元素的引用及其应用。
二、实验内容
1.[目的]掌握二维数组的输出方法。
[题目内容]已知有二维数组a的定义:int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};编程序,以三行四列的形式输出a数组。
[提示] 利用二重for循环结构与printf()。
#include &stdio.h&
void main()
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
printf(&二维数组:\n&);
for(i=0;i&3;i++)
for(j=0;j&4;j++)
printf(&%6d&,a[i][j]);
printf(&\n&);
2.[目的]掌握二维数组的输入、输出方法。
[题目内容]已知有一个3行2列的二维数组:
编程序,从键盘输入数据存储在二维数组中,并以3行2列的形式输出。
[输入]89,76,67,98,54,78
[提示] 利用二重for循环结构与scanf()、printf()及%4d格式输出。
#include &stdio.h&
void main()
int a[3][2];
printf(&请输入3行2列二维数组:\n&);
for(i=0;i&3;i++)
for(j=0;j&2;j++)
scanf(&%d&,&a[i][j]);
for(i=0;i&3;i++)
for(j=0;j&2;j++)
printf(&%4d&,a[i][j]);
printf(&\n&);
3.[目的]掌握二维数组的输入、输出、处理方法。
[题目内容]编程序,生成一个5行5列的二维矩阵,并输出。
[提示]利用for循环结构,生成原则:行下标与列下标相同的数组元素为1,其余为0。%4d格式输出。
#include &stdio.h&
void main()
int a[5][5];
for(i=0;i&5;i++)
for(j=0;j&5;j++)
a[i][j]=1;
else a[i][j]=0;
for(i=0;i&5;i++)
for(j=0;j&5;j++)
printf(&%4d&,a[i][j]);
printf(&\n&);
4.[目的]运用所学知识解决矩阵转置问题。
[题目内容]设a矩阵是3×2矩阵,编程序,将a矩阵转置,生成矩阵b(2×3),并输出。
[输入]a矩阵
[输出]b矩阵
[提示]利用不同矩阵行列下标的关系。(bii=aji)
#include &stdio.h&
void main()
int a[3][2],b[2][3];
printf(&请输入a数组:\n&);
for(i=0;i&3;i++)
for(j=0;j&2;j++)
scanf(&%d&,&a[i][j]);
for(i=0;i&3;i++)
for(j=0;j&2;j++)
b[j][i]=a[i][j];
printf(&a数组:\n&);
for(i=0;i&3;i++)
for(j=0;j&2;j++)
printf(&%4d&,a[i][j]);
printf(&\n&);
正在加载中,请稍后...若有以下数组说明,则i=10;a[a[i]]元素数值是() int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};_百度知道
若有以下数组说明,则i=10;a[a[i]]元素数值是() int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
若有以下数组说明,则i=10;a[a[i]]元素数值是()int a[12]={1,4,7,10,2,5,8,11,3,6,9,12}; A.10
D.5 怎么算出来?
我有更好的答案
C.6i=10,a[i]就是a[10]=9然后a[9]就是6.
采纳率:33%
选c, 先算中括号里面的a[i],i=10因此,a[i]=a[10]=9,所以a[a[i]]=a[9]=6
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信