/**************************************************
二维数组的一般形式
类型说明符 数组名[常量表达式][常量表达式]
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;
}
*/