vlambda博客
学习文章列表

C语言程序设计(九)

/**************************************************二维数组的一般形式类型说明符 数组名[常量表达式][常量表达式]float a[2][3];两行三列,错误示例float a[2,3];多维数组中:第一维的下标变化最慢,最右边的下标变化最快二维数组初始化类型说明符 数组名[常量表达式1][常量表达式2]={{,,,},{,,,},....}int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}int a[3][4]={{1},{5},{9}}与int a[3][4]={1,5,9}不一样宏编译注释#if(0) 注释语句#endif*//**************************************************5人三科成绩求平均值*//*void main(){ int i,j,s=0,average,v[3]; int a[5][3]={{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}}; for(i=0;i<3;i++){ for(j=0;j<5;j++){ s=s+a[j][i]; } v[i]=s/5; s=0; } average=(v[0]+v[1]+v[2])/3; printf("math:%d\nc language:%d\ndFoxpro:%d\n",v[0],v[1],v[2]); printf("total:%d\n",average);}*//**************************************************a[2][3]转化为b[3][2]*//*void main(){ int a[2][3]={{1,2,3},{4,5,6}},b[3][2],i,j; for(i=0;i<2;i++){ for(j=0;j<3;j++){ b[j][i]=a[i][j]; printf("%d",b[j][i]); } }}*//**************************************************3x4的矩阵求出最大值并输出所在行所在列*//*void main(){ int a[3][4]={{9,8,6,99},{99,88,55,777},{1,5,69,8}},max,i,j,row,colum; max=0; for(i=0;i<3;i++){ for(j=0;j<4;j++){ if(a[i][j]>max){ max=a[i][j]; row=i; colum=j; } } } printf("最大值%d",max); printf("所在行%d,所在列%d",row+1,colum+1);}*//**************************************************输入3行3列按数组格式输出第一行和第一列*//*void main(){ int a[3][3],i,j; for(i=0;i<3;i++){ for(j=0;j<3;j++){ scanf("%d",&a[i][j]); } } for(i=0;i<3;i++){ for(j=0;j<3;j++){ if(i==1||j==1){ printf("%d",a[i][j]); }else{ printf(" ");//printf("%c",''); } if(j==2) printf("\n"); } }}*//**************************************************二分法查找(前提是数组事先排好顺序)*//*//个人写void main(){ int a[10]={-12,0,6,16,23,56,80,100,110,115},low=0,mid=4,high=9,find,i; printf("输入查找数字"); scanf("%d",&find); while(1){ if(find==a[mid]){ printf("查找成功"); break; } if(low>high){ printf("查找不存在"); break; } if(find>a[mid]){ low=mid+1; mid=(high+low)/2; }else{ high=mid-1; mid=(high+low)/2; } }}*//*//宏定义#define m 10//没有分号void main(){ static int a[m]={-12,0,6,16,23,56,80,100,110,115}; int low=0,mid=4,high=m-1,found=0,n;//found表示找没找到 //内存主要分为四个区域:cood(编码区),data(数据区:存放常量,字符串,和static声明的变量,不会改变,程序退出释放),stack(栈区域,调用完成释放),heap区 printf("输入查找数字");#if(0) do{ scanf("%d",&n);//scanf有返回值,每成功读入一次+1 }while(n>a[high]||n<a[low]);//限制输入范围#endif while(scanf("%d",&n)!=1){ printf("illegal input!!!\nplease input again!!\n"); getchar(); } if(n>a[high]||n<a[low]){//程序效率提高 found=0; }else{ while(low<=high){ mid=(high+low)/2; if(n==a[mid]){ found=1; break; } else if(n>a[mid]){ low=mid+1; } else{ high=mid-1; } } } if(found==1){ printf("the index of %d is %d",n,mid); }else{ printf("there is not %d",n); }}*//**************************************************第七章函数函数可以相互调用一个函数可以被一个或者多个函数调用任意多次函数不能嵌套定义函数分类:(用户角度)1.标准函数:由系统提供2.自定义函数(函数形式)1.无参数函数形式:类型标识符 函数名(){声明部分 语句部分}2.有参数函数:参数传递数据形式:类型标识符 函数名(形式参数){声明部分 语句部分}
空函数类型标识符 函数名(){}
形参:写函数处的参数实参:调用函数处的参数
函数之间传递数据1.参数2.返回值3.全局变量*//*void main(){ void printstar();//对函数printstar声明 void print_message();//对函数print_message函数声明 printstar();//调用 print_message();//调用 printstar();//调用}void printstar(){ printf("******************************************\n");}void print_message(){ printf("hoe do you do!\n");}*//*void main(){ int max(int x,int y);//函数声明 int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("max is %d",c);}int max(int a,int b){ if(a>b){ return a; }else{ return b; } int z; //z= a>b?a:b; //return z;}*/