1.输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。
#include <stdio.h> #define N 40 int main() { int i,f,sum,score[N],max,index1,min,index2,found; double average; printf("请输入人数: "); scanf("%d",&f); sum=0; for(i=0;i<f;i++) { printf("请输入成绩 "); scanf("%d",&score[i]); if(score[i]<0) { break; } else if(score[i]>0) { sum=sum+score[i]; } } average=(double)sum/i; printf("sum=%d,average=%.2f ",sum,average); max=score[0]; index1=0; for(i=0;i<f;i++) { if(score[i]>max) { max=score[i]; index1=i; } } printf("max=%d,index1=%d ",max,index1+1); min=score[1]; index2=0; for(i=0;i<f;i++) { if(score[i]<min) { min=score[i]; index2=i; } } printf("min=%d,index2=%d ",min,index2+1); printf("请输入成绩 "); scanf("%d",&found); for(i=0;i<f;i++) { if(score[i]==found) { found=i; printf("found=%d",i+1); break; } } return 0; }
2.现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。
#include <stdio.h> #define N 11 int main() { int a,b,c,d,i; int number[11]={1,3,5,7,9,11,13,15,17,19}; printf("请输入插入的数字 "); scanf("%d",&a); for (i=0;i<N-1;i++) { if(a<number[i]) { b=i;break; } else { b=10; } } c=N-1; for (i=c;i>=b;i--) { number[i]=number[i-1]; } number[b]=a; for (i=0;i<N;i++) { printf("%4d",number[i]); } return 0; }
3.用数组实现火柴棍等式
#include <stdio.h> int main() { int a,b,c,match[10]={6,2,5,5,4,5,6,3,7,6}; for(a=0;a<=9;a++) for(b=0;b<=9;b++) { c=a+b; if(c>9) { break; } if(match[a]+match[b]+match[c]==12) { printf("%d+%d=%d ",a,b,c); } } return 0; }
知识点总结:
1 数组要先定义才能使用!
2 数组定义方式为:数据类型 数组名 【数组长度】!
3 数组一旦创建,不能改变大小!
4 只能逐个引用数组元素!
5 下标值超过数组长度时可能会导致程序崩溃!
6 数组若不初始化,其元素值为随机数!
实验总结:
1 定义变量后在VC6.0中要赋初始值!
2 数组元素更换顺序应从后往前!
3 数组中元素值不赋初始值的话,初始值默认为0!