看来是数组呐
前言
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考
一、数组的知识点
-
数组声明: 类型 数组名[size]
_______________________长度为size-1 : [0,1…size-1]#例如这样 : int a [3] ;
__________ char b [5] ; -
数组初始化
__可以标明size,也可以不标
__C++中数组超界不会报错,请小心检查
#例如:int a[5] = {1,3,5,7,9};
#或者:int b[ ] = {2,4,6,8,10};
- 数组下标变量( a [n] )
下标变量可以单独赋值,
可以直接计算,
可以用cin>>输入,cout<<输出。
#include<iostream>
using namespace std;
main()
{
int a[5],i,sum;
double avg;
for(i=0;i<=5;i++){
cout<<"a["<<i<<"]=";
cin>>a[i];
}
cout<<endl;
for(i=0;i<=5;i++){
cout<<"a["<<i<<"]=";
cout<<a[i]<<"\t";
}
for(i=0;i<=5;i++){
sum+=a[i];
}
cout<<endl<<"sum="<<sum<<endl;
avg=sum/5;
cout<<"avg="<<avg<<endl;
}
注意:’ ’ 单引号和 " " 双引号用途不一样," "双引号表示字符,’ '单引号只会输出乱码!
二、数组的排序与查找
1.遍历法查找最大值
代码如下:
#include<iostream>
using namespace std;
main(){
int a[8]={
16,47,29,65,83,56};
int max=0,i;
for(i=0;i<8;i++){
if(a[max]<a[i])
max=i;
}
cout<<"max="<<a[max];
}
2.二分法查找元素
代码如下(示例):
#include<iostream>//有问题的代码
using namespace std;
main()
{
//程序功能 :排序并查找元素
int a[5],low,high,mid;
int i,cir,count;
for(i=0;i<5;i++){
cout<<"a["<<i+1<<"]=";
cin>>a[i];//输入
}
while(count>=10)
{
for(i=1;i<5;i++)
{
if(a[i]<a[i-1])
{
cout<<a[i]<<"<"<<a[i-1]<<endl;
cir=a[i+1];
a[i+1]=a[i];
a[i]=cir;
cout<<endl<<"i="<<i<<endl;
break;
}
count+=1;
}
cout<<endl<<"i="<<i<<endl;
}
cout<<"a[0]="<<a[0]<<endl;
cout<<"a[1]="<<a[1]<<endl;
cout<<"a[2]="<<a[2]<<endl;
cout<<"a[3]="<<a[3]<<endl;
cout<<"a[4]="<<a[4]<<endl;
}
经过不断的努力和调试,我们写出了正确的代码!
#include<iostream>
#define size 5
using namespace std;
main()
{
int a[5];
//功能1:数组数据的输入和输出
for(int i=0;i<5;i++)
{
cout<<"a["<<i<<"]:\n";
cin>>a[i];
}
cout<<"a:";
for(int i=0;i<5;i++)
cout<<i<<":\t"<<a[i]<<endl ;
//功能2:排序(从小到大)
int t;//t为中间变量
for(int i=0;i<4;i++)
{
for(int j=i+1;j<5;j++)
{
if(a[j]<a[i])
{
cout<<"a[j]="<<a[j]<<"\t";
cout<<"a[i]="<<a[i]<<endl;
//记住:是将后面的直赋值给前面,a=2
t=a[j];
a[j]=a[i];
a[i]=t;
cout<<"change a[j]="<<a[j]<<"\t";
cout<<"change a[i]="<<a[i]<<endl;
}
}
}
for(int i=0;i<5;i++)
cout<<i<<":\t"<<a[i]<<endl ;
//排序完毕,开始二分查找
int low,high,mid;
int value,find;
low=0,high=size;
mid=(high+low)/2;
cout<<"value=";
cin>>value;
while(low<=high&&find==0)
{
mid=(high+low)/2;
cout<<endl<<"high=\t"<<high<<endl;
cout<<"low=\t"<<low<<endl;
cout<<"mid=\t"<<mid<<endl;
cout<<"a[mid]\t"<<a[mid]<<endl;
cout<<"value=\t"<<value<<endl;
cout<<"find=\t"<<find<<endl;
if(a[mid]==value)
find=1;
else if(a[mid]>value)
{
high=mid-1;
}
else if(a[mid]<value)
{
low=mid+1;
}
}
if(find==1)
cout<<"找到了!目标值在"<<mid<<"位上\n";
else
cout<<"找不到QAQ"<<"\n";
}
总结
这里对文章进行总结:
这一次我们进行数组的入门,因为二分查找是我们遇到的一个算法。所以希望大家课后能依靠自己的力量再写一遍(因为二分查找真的好难啊QAQ)
下一次打卡内容:指针变量。敬请期待!