目录
一维数组
一、数组的特点
二、定义数组
三、数组的初始化
四、数组引用
五、数组元素的赋值
六、冒泡排序
七、回文数
1.判断一个五位数是否为回文数
2.引入ctype.h头文件
ctype.h
八、数组的查找
1.普通循环查找
2.二分法查找
int num[5]
int num [5] = {0} // 数组元素为0 0 0 0 0
1.数组定义时:
2.如果只定义了数组,没有初始化,元素的值是随机的。
char ch[10]; //数组的定义
char str[10]="hello"; //数组的初始化
注:数组元素引用时,下标不能越界
1.常规赋值
int a[6]={1,20};
a[3]=15; //指定元素赋值,数组元素相当于变量
int a[6]={1,20};
a=10; //不能一次给整个数组赋值,可以给一个元素赋值
//a是数组名
2.利用循环给数组赋值
#include
int main(){
int i,a[6];
for(i=0;i<6;i++) //对数组元素a[0]~a[5]赋值
a[i]=i+1;
for(i=0;i<6;i++) //循环输出数组元素a[0]~a[5]
printf("%d\n",a[i]);
return 0;
}
代码如下(示例):
#include
int main (){
int num [5] = {14,8,27,0,89};
int temp = 0;
// 冒泡排序开始
// 外循环
for (int i = 0; i< 5;i++){
// 内循环
for(int j = 0;j<5;++j){ //从小到大排序,j<4
// 从大到小
if(num[j]
代码如下(示例):
#include
int main(){
char s[5]={0};//语法是正确的
printf("请输入一个五位数:") ;
gets(s);
if(s[0] == s[4] && s[1]==s[3]){
printf("是回文数\n");
} else{
printf("不是回文数\n");
}
}
#include
#include
int main(){
char c;
int letter=0;
int number=0;
int space=0;
while((c=getchar())!='Q'){ //输入:
if(isalpha(c)!=0){ //q
letter++; //1
} //
if(isdigit(c)!=0){ //Q
number++; //输出:字母=1,空格=1,数字=0
}
if(isblank(c)!=0){
space++;
}
}
printf("字母=%d,空格=%d,数字=%d",letter,number,space);
}
#include
int main ()
{
int a[ ] = {1,2,3,4,12,21,13,4,5,6,77,43,21,14,15};
// 如何计算数组中有多少元素
int n = sizeof(a)/sizeof(a[0]);
printf("%d\n",n);
int num = 0;
printf("请输入需要查找的值:");
scanf("%d",&num);
int i = 0;
for( ; i
#include
int main(){
int a []={ 5,12,32,7,9,10};
int n=sizeof(a)/sizeof(a[0]);
int low=0; //数组下标的最低位
int high=sizeof(a)/sizeof(a[0])-1;//数组下标的最高位
int mid = 0;//数组的中间位
int key =0; //用户输入的数据
int temp = 0;
//数组必须要排序
for(int i =0;ia[j+1]){
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
printf("%d\n",a[5]);
printf("请输入需要查找的数字:");
scanf("%d",&key);
//二分查找
while(low <= high){
mid = (low+high)/2;
if(key < a[mid]){
high = mid - 1;
} else if(key > a[mid]){
low = mid +1;
}else{
printf("下标是:%d\n",mid);
break;
}
}
}