-- 作者:admin
-- 发布时间:2015/10/30 21:43:55
-- [推荐]第六课代码讲义:数组
如何把一个值赋给很多变量? 数组提供了一种循环访问变量的方法
int main() { int array[10],i=0; array[0]=1; array[1]=1; for(i=0; i<10; i++) array[i]=1; for(i=0; i<10; i++) printf("array[%d]=%d\\t",i,array[i]);
}
如果不赋值会怎么样? int main() { int array[10],i=0; array[0]=1; array[1]=1;
for(i=0; i<10; i++) printf("array[%d]=%d\\t",i,array[i]);
}
其他初始化赋值方法: int main() { int array[10]= {0,1,2,3,4,5,6,7,8,9},i=0; for(i=0; i<10; i++) array[i]=i; for(i=0; i<10; i++) printf("array[%d]=%d\\t",i,array[i]);
}
一个例子(让用户分别给每个数组元素赋值,最后算出平均数) #define LEN 4
int main() { int array[LEN],i=0,sum=0; for(i=0; i<LEN; i++) { scanf("%d",&array[i]); } for(i=0; i<LEN; i++) { sum=sum+array[i]; }
printf("%5.2f",sum*1.0/LEN);
}
改进代码: #define LEN 4
int main() { int array[LEN],i=0,sum=0; for(i=0; i<LEN; i++) { scanf("%d",&array[i]); sum=sum+array[i]; } printf("%5.2f",sum*1.0/LEN);
}
利用数组实现数位显示
int main() { int number=0,i=0,array[5],divider=10000,j=0; scanf("%d",&number); for(i=0; i<5; i++) { array[i]=number/divider; number=number%divider; divider=divider/10; if(j==0 && array[i]>0) {
j=5-i; printf("这是%d位数\\n每个位数是:",j);
} if(j>0) printf("%d ",array[i]); }
printf("\\n倒序结果为:"); for(i=4; i>=5-j; i--) printf("%d ",array[i]); }
数组排序 #define LEN 4
int main() { int array[LEN],i=0,j=0,temp=0; for(i=0; i<LEN; i++) { scanf("%d",&array[i]); } for(i=0; i<LEN; i++) { for(j=i+1; j<LEN; j++) { if(array[i]>array[j]) { temp=array[i]; array[i]=array[j]; array[j]=temp; } } } for(i=0; i<LEN; i++) printf("array[%d]=%d\\t",i,array[i]); }
转置二维矩阵 有问题? #define LEN 4
int main() { int array[LEN][LEN]= {1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4}; int i=0,j=0,temp; for(i=0; i<LEN; i++) { for(j=0; j<LEN; j++) printf("[%d,%d]=%d\\t",i,j,array[i][j]); printf("\\n"); } for(i=0; i<LEN; i++) for(j=0; j<LEN; j++) { temp=array[i][j]; array[i][j]=array[j][i]; array[j][i]=temp; } for(i=0; i<LEN; i++) { for(j=0; j<LEN; j++) printf("[%d,%d]=%d\\t",i,j,array[i][j]); printf("\\n"); } }
只需改动一个! #define LEN 4
int main() { int array[LEN][LEN]= {1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4}; int i=0,j=0,temp; for(i=0; i<LEN; i++) { for(j=0; j<LEN; j++) printf("[%d,%d]=%d\\t",i,j,array[i][j]); printf("\\n"); } for(i=0; i<LEN; i++) for(j=i; j<LEN; j++) { temp=array[i][j]; array[i][j]=array[j][i]; array[j][i]=temp; } for(i=0; i<LEN; i++) { for(j=0; j<LEN; j++) printf("[%d,%d]=%d\\t",i,j,array[i][j]); printf("\\n"); } }
删除指定元素 #define LEN 10 #include "stdio.h" #include "stdlib.h"
main() { int array[LEN]= {0,1,2,3,4,5,6,7,8,9},number=0,i=0,j=0; scanf("%d",&number); for(i=0; i<LEN; i++) { if(number==array[i]) { break; } } for(j=i; j<LEN-1; j++) { array[j]=array[j+1]; } array[LEN-1]=0; for(i=0; i<10; i++) printf("array[%d]=%d\\t",i,array[i]);
}
[此贴子已经被作者于2015-11-05 20:47:26编辑过]
|