求一题代码
求代码
题目:已知数组int array[10] = {0,9,5,4,1,8,2,7,6,3},生成一个0-9之间的随机数,查找他在数组中的位置,然后对数组中的数据进行排序,输出排序后的数组。说明:(1)以下代码可用于生成随机整数:(int)(Math.random()*10)(2)查找算法和排序算法任选
------解决方案--------------------#include <iostream>
using namespace::std;
//使用插入排序
void insertion(int array[],int number)
{
for( int i=2;i <number;++i )
{
int s=i;
int temp=array[i];
while( s> 1 && temp <array[s-1] )
{
array[s]=array[s-1];
s--;
}
array[s]=temp;
}
}
int main()
{
//随即数
int n=6;
//给定的数组
int array[10] = {0,9,5,4,1,8,2,7,6,3};
//查找位置
for( int i=0;i <10;++i )
{
if(n==*(array+i))
{
cout < < "随机数是数组内的第 " < <(i+1) < < "个元素 " < <endl;
}
}
//排序
insertion(array,10);
//显示排序结果
for( int i=0;i <10;++i )
{
cout < <array[i];
}
//------------------------
cin.get();
}
------解决方案--------------------import java.util.Random;
public class NumberTest{
NumberTest(){
}
public static void main(String [] args)
{
Random number=new Random();
double val=number.nextDouble()*10;
int num=(int)val;
//System.out.println(val);
//System.out.println(num);
int array[] = {0,9,5,4,1,8,2,7,6,3};
int count=0;
int temp=0;
for(int i=0;i <array.length;i++)
{
if(array[i]==num)
{
count=i+1;
System.out.println( "产生随机数的位置为: "+count);
}
}
//开始对数组进行排序
for(int j=0;j <array.length;j++){
for(int m=0;m <array.length-1;m++){
if(array[m]> array[m+1]){
temp=array[m];
array[m]=array[m+1];
array[m+1]=temp;
}
}
}
System.out.println( "排序后的数组为: ");
for(int k=0;k <array.length;k++)
System.out.print(array[k]+ "\t ");
}
}
------解决方案--------------------排序的话 用 Arrays.sort(int[] array)应该更方便吧