关于C语言数组的实验
966 字
5 分钟
关于C语言数组的实验
实验1
定义一个具有 40 个整数元素的数组,用随机数输入这个数组的元素,编写程序求出这个数组的最大值,平均值,对这个数组排序,输入一个关键数并在数组中查找和删除之。
代码如下:
#include <stdio.h>#include <stdlib.h>#include <time.h>//函数声明int max(int array[],int ARRAY_SIZE);int avg(int array[],int ARRAY_SIZE);void printArray(int array[],int ARRAY_SIZE);void sortArray(int array[],int ARRAY_SIZE);int searchArray(int array[],int ARRAY_SIZE,int key);void deleteArray(int array[],int ARRAY_SIZE,int location);int main(){ int ARRAY_SIZE = 40; int LIST[ARRAY_SIZE]; int i,j,temp,del,location; srand(time(NULL));
//随机数填充数组 for(i;i<ARRAY_SIZE;i++) LIST[i] = rand();
printArray(LIST,ARRAY_SIZE); printf("\n最大值为:%d",max(LIST,ARRAY_SIZE)); printf("\n平均值为:%d",avg(LIST,ARRAY_SIZE));
//数组排序 for(i = 0;i<ARRAY_SIZE-1;i++){ for(j = 0;j<ARRAY_SIZE-1-i;j++){ if(LIST[j]>LIST[j+1]){ temp = LIST[j]; LIST[j] = LIST[j+1]; LIST[j+1] = temp; } } }
printf("\n排序后的数组:\n"); printArray(LIST,ARRAY_SIZE);
printf("输入要删除的数字:"); scanf("%d",&del);
location = searchArray(LIST,ARRAY_SIZE,del); if (location == -1) printf("\n输入的数字不存在!"); else printf("\n输入的数字在数组的第%d位",location);
deleteArray(LIST,ARRAY_SIZE,location); ARRAY_SIZE -= 1; printf("\n数字已删除,删除后的数组:\n"); printArray(LIST,ARRAY_SIZE);}
//求最大值int max(int array[],int ARRAY_SIZE){ int max = array[0];
for(int i;i<ARRAY_SIZE;i++){ if(max<array[i]){ max = array[i]; } } return max;}//求平均值int avg(int array[],int ARRAY_SIZE){ int sum,avg;
for(int i = 0;i<ARRAY_SIZE;i++){ sum += array[i]; } return avg = sum / ARRAY_SIZE;}//打印数组void printArray(int array[],int ARRAY_SIZE){ for(int i = 0;i<ARRAY_SIZE;i++){ printf("%d ",array[i]); if(i % 5 == 4){ printf("\n"); } }}//查找数组中的数字int searchArray(int array[],int ARRAY_SIZE,int key){ int location = -1; for(int i = 0;i<ARRAY_SIZE;i++){ if(key == array[i]){ location = i; break; } } return location;}//删除数组中的数字void deleteArray(int array[],int ARRAY_SIZE,int location){ for(int i = location;i<ARRAY_SIZE;i++){ if(i<ARRAY_SIZE){ array[i] = array[i+1]; } }}实验2
写一个菜单,菜单内容为:1:输入数组,2:输出数组,3:排序数组4.求数组得最大值.5.求数组得平均值.6.查找关键数据.7.删除一个数据.8.结束.
#include <stdio.h>#include <stdlib.h>
int max(int array[],int ARRAY_SIZE);int avg(int array[],int ARRAY_SIZE);int searchArray(int array[],int ARRAY_SIZE,int key);void printArray(int array[],int ARRAY_SIZE);void deleteArray(int array[],int ARRAY_SIZE,int key);
int main(){ const int ARRAY_SIZE = 999; int LIST[ARRAY_SIZE]; int select,length = 0; int i,j,temp,searchNum,location;
do{ system("cls"); printf("\n\n ※数组实验※ \n\n"); printf(" 1:输入数组 \n"); printf(" 2:输出数组 \n"); printf(" 3:排序数组 \n"); printf(" 4:求数组得最大值 \n"); printf(" 5:求数组得平均值 \n"); printf(" 6:查找关键数据 \n"); printf(" 7:删除一个数据 \n"); printf(" 8:结束 \n");
printf("\n 请选择操作:"); scanf(" %d",&select);
switch(select){ default: printf("输入错误,请重新输入!"); break;
case 1: printf("\n请输入若干个数字,以^Z为结束标志:"); while(scanf("%d",&LIST[length]) == 1) ++length; printf("数组已输入!数组长度:%d",length); break;
case 2: if(length == 0){ printf("你还没有输入数组!"); }else{ printf("\n输出数组:\n"); printArray(LIST,length); } break;
case 3: //数组排序 if(length == 0){ printf("你还没有输入数组!"); }else{ for(i = 0;i<length-1;i++){ for(j = 0;j<length-1-i;j++){ if(LIST[j]>LIST[j+1]){ temp = LIST[j]; LIST[j] = LIST[j+1]; LIST[j+1] = temp; } } } } printf("数组已排列!\n"); printArray(LIST,length); break;
case 4: printf("数组最大值为:%d",max(LIST,length)); break;
case 5: printf("数组平均值为:%d",avg(LIST,length)); break;
case 6: if(length == 0){ printf("你还没有输入数组!"); }else{ printf("打印数组:\n"); printArray(LIST,length); printf("\n输入要查找的数字:"); scanf("%d",&searchNum); location = searchArray(LIST,length,searchNum); if(location != -1){ printf("\n找到数字!位于数组第%d位!",location); }else{ printf("\n没有找到要查找的数字!"); } break; }
case 7: if(length == 0){ printf("你还没有输入数组!"); }else{ printf("打印数组:\n"); printArray(LIST,length); printf("\n输入要删除的数字:"); scanf("%d",&searchNum); deleteArray(LIST,length,searchNum); length -=1; printf("已删除!删除后的数组:\n"); printArray(LIST,length); } break; case 8: exit(0); } fflush(stdin); printf("\n"); system("pause"); }while (1);}//求最大值int max(int array[],int ARRAY_SIZE){ int max = array[0]; for(int i = 0;i<ARRAY_SIZE;i++){ if(max<array[i]){ max = array[i]; } } return max;}//求平均数int avg(int array[],int ARRAY_SIZE){ int sum,avg; for(int i = 0;i<ARRAY_SIZE;i++){ sum += array[i]; } return avg = sum / ARRAY_SIZE;}//查找数组中的数字int searchArray(int array[],int ARRAY_SIZE,int key){ int location = -1; for(int i = 0;i<ARRAY_SIZE;i++){ if(key == array[i]){ location = i; break; } } return location;}//打印数组void printArray(int array[],int ARRAY_SIZE){ for(int i = 0;i<ARRAY_SIZE;i++){ printf("%d ",array[i]); if(i % 5 == 4){ printf("\n"); } }}//删除数组中的数字void deleteArray(int array[],int ARRAY_SIZE,int key){ int location; location = searchArray(array,ARRAY_SIZE,key); for(int i = location;i<ARRAY_SIZE;i++){ if(i<ARRAY_SIZE){ array[i] = array[i+1]; } }}文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
最后更新于 2022-11-16
部分内容可能已过时











