for循环和数组练习

Posted lzw123-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了for循环和数组练习相关的知识,希望对你有一定的参考价值。

//公鸡2文,母鸡1文,小鸡半文,每种至少一只,100文买100只鸡有多少种可能

var ci =0; for(var g=1;g<50;g++){ for(var m=1;m<100;m++){ for(var x=1;x<100;x++){ if(g*2+m*1+x*(0.5)==100&&g+m+x==100){ ci+=1; console.log("买公鸡"+g+"只,母鸡"+m+"只,小鸡"+x+"只"); } } } } console.log("有"+ci+"种可能");
结果为:
   
技术分享图片
//羽毛球拍15元,球3元,水2元,200元每种至少一个,有多少种可能
js代码为:

var ci=0;

for(var a=1;a<15;a++){
  for(var b=1;b<67;b++){
    for(var c=1;c<100;c++){
      if(a*15+b*3+c*2==100){
        ci+=1;
        console.log("买羽毛球拍"+a+"副,球"+b+"个,水"+c+"瓶");
      }
    }
  }
}
console.log("有"+ci+"种可能");


结果:
技术分享图片

 

 有一张0.0001米的纸,对折多少次可以达到珠穆朗玛峰的高度8848 

var gao = 0.0001;
 var c = 0;//对折次数
 for(var i = 0;i >= 0;i++){
	 		gao = gao*2;//对折后纸张厚度
			c++;
	  		console.log(gao);
     if(gao >= 8848){
             break;
      }
 }
 console.log(c); //对折次数    

 结果:

 技术分享图片

例子:一个球从100米的高度自由下落,每次落地后反跳回原高度的一半,再落下,求它在第10次落地时,共经过多少米,第10次反弹多高?

 js代码:

//方法一
var h=100;
var s=0;
var s1=0;//上升总路程
var s2=0;//下降总路程
for(var i=1;i<10;++i){
	
	h=h/2;//每次反弹路程
	console.log(h);
	s1=s1+h;
	s2=s2+h;
	s=s1+s2+100;//一共经过路程
	console.log(s);
	
}
console.log("第十次落地时,共经过"+s+"米");
console.log("第十次反弹时高度为:"+h/2+"米");

 结果:

技术分享图片

//方法二
var h=100; var sum=0; for(var i=1;i<=10;++i){ sum += h;//上来的总高度 h = h/2;//每次反弹多高 // 第十次不需要反弹 if(i!=10){ sum += h;//下来时的高度 } } console.log(sum); console.log(h);//第十次反弹高度
结果:
技术分享图片

 


 技术分享图片

js代码:

var lirun=prompt("请输入利润(单位万元)");
var jiangjin =0;

if(lirun<=10){
	jiangjin=lirun*0.1;
}else if(lirun>10&&lirun<20){
	jiangjin=10*0.1+(lirun-10)*0.075;
}else if(lirun>=20&&lirun<40){
	jiangjin=10*0.1+10*0.075+(lirun-20)*0.05;
}else if(lirun>=40&&lirun<60){
	jiangjin=10*0.1+10*0.075+20*0.05+(lirun-40)*0.03;
}else if(lirun>=60&&lirun<100){
	jiangjin=10*0.1+10*0.075+20*0.05+20*0.03+(lirun-60)*0.015;
}else{
	jiangjin=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(lirun-100)*0.01;
}
console.log("应该发总奖金:"+jiangjin*10000+"元");

 结果例:
 技术分享图片

 

 技术分享图片

例子:  九九乘法口诀表

js代码:

var jieguo=0;//积
//九九表的行
for(var i=1;i<=9;i++){
	
	//九九表的列
	for(var j=1;j<=i;j++){
		jieguo = i*j;//积
		document.write("	"+i+"*"+j+"="+jieguo);//公式

	}
	document.write("<br>");	
}

 结果:
技术分享图片

例子:  输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组

js代码:

var str =prompt(‘输入一串数组‘);
var arr =str.split(‘,‘);
//先把最大与最小值定义为第一个元素 var max =arr[0]; var min =arr[0];
//初始化 var sum =0; var sum1 =0; for(var i=0;i<arr.length;++i){
    //选出最大的数组元素 if(max <= +arr[i]){ max=arr[i]; sum =i;//找到最大数组元素下标并存储 }
    //选出最小的数组元素 if(min >= +arr[i]){ min=arr[i]; sum1 =i; } } arr[sum]=arr[0];//数组第一个元素与最大的元素交换 arr[0]=max;//最大数存储在第一个元素位置 arr[sum1]=arr[arr.length-1];//数组最后一个元素与最小的元素交换
arr[arr.length-1]=min;//最小的数给数组最后一个元素
alert(arr);  

 结果:
技术分享图片

技术分享图片

 例子:

  输入学生个数,每个学生的学号,姓名,三门课成绩,计算出平均成绩

js代码:

var num =prompt("输入学生的数量");
var stu = [];
//记录学生信息
for(var i=0;i<num;i++){
	stu[i]=[];
	stu[i][0]=prompt( "请输入学生的姓名");
	stu[i][1]=prompt( "请输入学生的编号");
	stu[i][2]=prompt( "请输入学生的英语成绩");
	stu[i][3]=prompt( "请输入学生的数学成绩");
	stu[i][4]=prompt( "请输入学生的语文成绩");
	
}

var avg =0;
for(var i=0;i<num;++i){
	//计算成绩的和
	var sum=0;
	for(var j=2;j<stu[i].length;j++){
		sum +=parseInt((stu[i][j]));//总成绩
	}
	avg=sum/(stu[i].length-2);//求平均成绩
	stu[i].push(avg);//存储记录平均成绩
	alert(stu[i][0]+"的平均成绩:"+avg);//输出每个人的平均成绩
 

 注意
    1.变量的作用域就是在大括号之内

    2.写代码方向,易维护,易扩展,易复用

    3.在写每个语句时,多写注释

   

   



























以上是关于for循环和数组练习的主要内容,如果未能解决你的问题,请参考以下文章

Java练习 标准输入,输出,以及while 循环

for循环练习+js数组

JavaScript-循环数组 案例与练习

js循环(while循环,do while循环,for循环)相关知识点及练习

课堂练习(循环数组的最大子数组和)

Java学习笔记6(循环和数组练习题)