课堂笔记
#include <iostream>
using namespace std;
#include <stdlib.h>
#include <time.h>
//向函数传递一维数组
void createArray(int a[],int n)
//第一个参数只是知道数组的首地址在哪里,第二个参数是控制元素个数
{
int i;
srand(time(NULL));
for(i=0;i<n;i++)
{
a[i]=rand()%101;
}
}
void printArray(int a[],int n)
{
int i;
for(i=0;i<n;i++)
{
cout<<a[i]<<"\t";
}
cout<<endl;
}
int Max(int a[],int n)
{
int max;
max=a[0];
int i;
for(i=1;i<n;i++)
{
if(a[i]>max) max=a[i];
}
return max;
}
//
//
void selectSort(int a[],int n)
{
int i,j;
int min,mi;
int t;
for(i=0;i<n-1;i++)
{
//找最小值
min=a[i];
mi=i;
for(j=i+1;j<n;j++)
{
if(a[j]<min)
{
min=a[j];
mi=j;
}
}
//a[mi],a[i]
//交换
t=a[mi]; a[mi]=a[i]; a[i]=t;
printArray(a,10);
}
}
int main(int argc, char** argv) {
int a[10];
createArray(a,10);
//createArray(&a[2],5);
//createArray(a+2,5):两种表达方式表达意思相同
printArray(a,10);
cout<<"**************************************"<<endl;
//cout<<Max(a,10)<<endl;
selectSort(a,10);
cout<<"**************************************"<<endl;
printArray(a,10);
return 0;
}
代码测试
#include <iostream>
using namespace std;
#include <time.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void creatArray(int a[],int n)
{
int i;
srand(time(NULL));
for(i=0;i<n;i++)
{
a[i]=rand()%101;
}
}
void printArray(int a[],int n)
{
int i;
for(i=0;i<n;i++)
{
cout<<a[i]<<"\t";
}
cout<<endl;
}
int selectArray(int a[],int n)
{
int i,j;
int min,m;
int t;
for(i=0;i<n-1;i++)
{
min=a[i];
m=i;
for(j=i;j<n;j++)
{
if(a[j]<min)
{
min=a[j];
m=j;
}
}
t=a[m];a[m]=a[i];a[i]=t;
printArray(a,10);
}
}
int main(int argc, char** argv) {
int a[10];
creatArray(a,10);
selectArray(a,10);
return 0;
}
学习总结
1.int a[10]=(1,3,4,6)可以给少不可以给多
运行结果为:1346000000
2.for(int i=0;i<=10;i++)
{
cout<<a[i]<<endl;//下标越界
}
3.void creatArray(int a[] 括号一定要为空,表示数组名,不要加任何数字,int n)
4.选择排序法
从所有数中选择最小的依次排列,依次放到第一位,第二位...其实是与原来在此位的数交换位置
一共排(n-1)轮,最后一个数不用再交换位置