C -array

来源:互联网 发布:中公教育网络课程 编辑:程序博客网 时间:2024/05/15 10:11
#include <iostream>
#include <stdio.h>
//array 
//in array, subscript begain with zero. 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */




//对数组由小到大排序(maopao)
 //在说明和定义函数时,要在数组参数的尾部加上一对方括号([]),
 //调用函数时只需将数组的地址(即数组名)传递给函数


void show_array(int ar[], int n){
for (int i = 0;i < n ;i++){
printf("%d ",ar[i]);
}
printf("\n");
}
//冒泡思路: 
void sort_min(int ar[],int n){
int count_min = 0;
for (int i = 0; i < n; i++){
for(int j = 0; j< n-i-1; j++){
if(ar[j]>ar[j+1]){
int tmp = ar[j];
ar[j] = ar[j+1];
ar[j+1] = tmp;
++count_min;
}
printf("i_min = %d ",i);//循环多少次后顺序排好
}
printf("\n");
}
printf("count_min = %d\n",count_min);//交换次数
}


void sort_max(int ar[],int n){
int count_max = 0;
for (int i = 0; i < n; i++){
for(int j = 0; j< n-i-1; j++){
if(ar[j]<ar[j+1]){
int tmp = ar[j];
ar[j] = ar[j+1];
ar[j+1] = tmp;
count_max++; 
}
printf("i_max = %d ",i);//循环多少次后顺序排好
}
printf("\n");
}
printf("count_max = %d\n",count_max);//交换次数 
}
void sum_j(int n){
int count_j = 0;
for(int i = 0; i < n;i++){
for (int j = 0; j < n - j -1;j++){

++count_j;
}
printf("count_j = %d\n",count_j);
}
}

int main (){
int ar[]={1,4,5,3,2};

show_array(ar, sizeof(ar)/sizeof(int));


sort_min(ar, sizeof(ar)/sizeof(int));

show_array(ar, sizeof(ar)/sizeof(int));


sort_max(ar, sizeof(ar)/sizeof(int));
sum_j(sizeof(ar)/sizeof(int));

show_array(ar, sizeof(ar)/sizeof(int));


return 0;
}
/*
//3.初始化:直接初始化{, , ,}大括号并用逗号隔开,for循环赋值,手动输入赋值 
//不能定义无大小的数组,即 int dr[]; 但是可以int dr[] = {1,2,3,4} ;
int main(){

//int a = 10;//初始化:定义变量同时赋值,变量刚产生。 
//int b;//分配空间 
//b = 10;//赋值 b为已经存在的变量。
int ar[5] = {1,2,3,4,5};//完全初始化,5个空间刚好给5个值。
int br[5] = {1,3,3}; 
int dr[] = {1,2,3,4};
printf("size = %d\n",sizeof(ar));//20byte
printf("size = %d\n",sizeof(dr));//16byte
int count = sizeof(dr)/sizeof(int);//就算数组元素个数 
return 0;



/*
//2.数组名代表了整个数组的空间大小 
int main(){
int ar[10];
printf("size = %d\n",sizeof(ar)); //size = 40

printf("%x\n",ar);//%x十六进制。打印数组名是6cfee8地址,刚好是ar[0]的地址。 
//访问ar数组 
printf("%x\n",&ar[0]);//6cfee8,求首元素空间的地址 
printf("%x\n",&ar);//6cfee8,求整个数组空间的地址。 


/*
// 1.1数组要用循环读取,赋值,输出等操作 。
//1.2.数组中的元素类型相同 
//1.3.数组可以引用元素,但是不可以引用整个数组 
int main(int argc, char *argv[]) {
int ar[10];
char ch[10];
//如果不提前定义i,在两个for循环中都必须对i进行重新定义 
for (int i = 0; i < 10; i++){
ar[i] = i+1; 
}
for(int i = 0; i < 10; ++i){
printf("%d ",ar[i]);

return 0;
}
*/
0 0
原创粉丝点击