c/c++第十天
2016-08-04 19:22
218 查看
二维数组初始化形式:
数组类型 数组名[行数长度][列数长度]={数组元素};
如:
int a[2][2]={{1,2},{3,4}};
也可以不用{}把数组元素隔开,如:
int a[2][2]={1,2,3,4};
这样的话,依次把第一个值符给a[0][0],第二个值赋给a[0][1],第三个值赋给a[1][0],第四个值赋给a[1][1].
a[0][0]=1;a[0][1]=2;a[1][0]=3;a[1][1]=4;
二维数组定义时可以不写第一位长度,但是第二列长度不可以忽略。
传递数组参数是也一样。
#include<stdio.h>
int fun(int a[][2]){ //要写第二维长度
printf("%d\t%d\n%d\t%d",a[0][0],a[0][1],a[1][0],a[1][1]);
}
void main(){
int a[2][2]={1,2,3,4};
fun(a);
getchar();
}
/*输入10个数找最大值*/
#include<stdio.h>
void main(){
int a[10],x,max=0;
for(int i=0;i<=9;i++){
scanf("%d",&x);fflush(stdin);
a[i]=x;
}
for(int i=0;i<=9;i++){
if(a[max]<a[i]){
max=i;
}
}
printf("最大值:%d",a[max]);
getchar();
}
二分查找
要是按照从小到大的顺序进行排序
/*给数组赋值10个随机数,输入一个数求这个数下标*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int search(int a[],int length){
int start=0,end=length-1,key;
scanf("%d",&key);fflush(stdin);
while(start<=end){
int mid=(start+end)/2;
if(a[mid]==key){
return mid;
}else{
if(a[mid]<key){
start=mid+1;
}else{
end=mid-1;
}
}
}
return -1;
}
void main(){
int a[10];
srand((unsigned)time(NULL));
for(int i=0;i<=9;i++){
a[i]=rand()%100+1;
}
for(int j=0;j<=sizeof(a)/sizeof(int)-2;j++){
for(int k=1;k<=sizeof(a)/sizeof(int)-1;k++){
if(a[k-1]>a[k]){
a[k-1]=a[k-1]^a[k];
a[k]=a[k-1]^a[k];
a[k-1]=a[k-1]^a[k];
}
}
}
for(int i=0;i<=9;i++){
printf("%d\t",a[i]);
}
int c=search(a,sizeof(a)/sizeof(int));
if(c!=-1)printf("数组下标:%d",c);
else printf("未找到");
getchar();
}
数组类型 数组名[行数长度][列数长度]={数组元素};
如:
int a[2][2]={{1,2},{3,4}};
也可以不用{}把数组元素隔开,如:
int a[2][2]={1,2,3,4};
这样的话,依次把第一个值符给a[0][0],第二个值赋给a[0][1],第三个值赋给a[1][0],第四个值赋给a[1][1].
a[0][0]=1;a[0][1]=2;a[1][0]=3;a[1][1]=4;
二维数组定义时可以不写第一位长度,但是第二列长度不可以忽略。
传递数组参数是也一样。
#include<stdio.h>
int fun(int a[][2]){ //要写第二维长度
printf("%d\t%d\n%d\t%d",a[0][0],a[0][1],a[1][0],a[1][1]);
}
void main(){
int a[2][2]={1,2,3,4};
fun(a);
getchar();
}
/*输入10个数找最大值*/
#include<stdio.h>
void main(){
int a[10],x,max=0;
for(int i=0;i<=9;i++){
scanf("%d",&x);fflush(stdin);
a[i]=x;
}
for(int i=0;i<=9;i++){
if(a[max]<a[i]){
max=i;
}
}
printf("最大值:%d",a[max]);
getchar();
}
二分查找
要是按照从小到大的顺序进行排序
/*给数组赋值10个随机数,输入一个数求这个数下标*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int search(int a[],int length){
int start=0,end=length-1,key;
scanf("%d",&key);fflush(stdin);
while(start<=end){
int mid=(start+end)/2;
if(a[mid]==key){
return mid;
}else{
if(a[mid]<key){
start=mid+1;
}else{
end=mid-1;
}
}
}
return -1;
}
void main(){
int a[10];
srand((unsigned)time(NULL));
for(int i=0;i<=9;i++){
a[i]=rand()%100+1;
}
for(int j=0;j<=sizeof(a)/sizeof(int)-2;j++){
for(int k=1;k<=sizeof(a)/sizeof(int)-1;k++){
if(a[k-1]>a[k]){
a[k-1]=a[k-1]^a[k];
a[k]=a[k-1]^a[k];
a[k-1]=a[k-1]^a[k];
}
}
}
for(int i=0;i<=9;i++){
printf("%d\t",a[i]);
}
int c=search(a,sizeof(a)/sizeof(int));
if(c!=-1)printf("数组下标:%d",c);
else printf("未找到");
getchar();
}
相关文章推荐
- C++菜鸟常见错误整理(第十天)
- C++第十天 2016-12-09 3.6-4.1
- C++第十天
- c++第十天
- 开发工具大比拚之Visual C++ vs. Delphi(一)
- Byte杂志C++调查报告
- 对今年内将出版的几本C++书的简评
- VC不是梦想,C++需要自由的心
- C++之父B. Stroustrup近期言论
- 开发工具大比拚之Visual C++ vs. Delphi(二)
- 用纯粹的C++编写COM组件
- 开发工具大比拚之Visual C++ vs. Delphi(三)
- 在Delphi与C++之间实现函数与对象共享
- C/C++的思索 C++之父访谈录 [上帝的玩笑吗?]
- 突破C++的虚拟指针--C++程序的缓冲区溢出攻击
- C++: BIG5到GB
- C++ FAQ Lite[8]--引用(更新)
- C++ FAQ Lite[7]--类和对象(更新)
- C++ FAQ Lite[17]--异常和错误处理(更新)