优秀学习资料 欢迎下载
for(j=0;j<=4;j++) if(j==i) switch(j) {
case 0:a=1;b=0;c=0;d=0; break;
case 1:a=0;b=1;c=0;d=0; break;
case 2:a=0;b=0;c=1;d=0; break;
case 3:a=0;b=0;c=0;d=1; break;
default:break; }
if(a+b+c==1&&b+c==1&&c+d==1&&b+c+d==1) printf(\做好事的人是%c\\n\ }
getchar(); }
实验四 数组程序设计 实验
( 验证性 综合性 实验 4学时)
1、目的要求:
(1)掌握一维和二维数组的使用技巧。 (2)编写实验报告。
2、实验内容(参考实验指导书):
(1)从键盘输入一个长度为N(比如10)的整型数组,而后将数组中小于零的元素移动到数组的前端,大于零的元素移到数组的后端,等于零的元素留在数组中间。比如原来数组为:2 -5 -89 75 0 -89 0 93 48 0,经过处理后的数组为:-5 -89 -89 0 0 0 75 93 48 2。由于不要求数组有序,所以不允许用排序方法。
提示:
1)输入N个数据,构建数组。
2)按照要求确定数据的位置,需要注意循环条件的确定、0数据元素往中间推的实现过程以及数组处理的方向。
#include
#include
优秀学习资料 欢迎下载
{ }
int a[N]={2,-5,-89,75,0,-89,0,93,48,0}; int i,t,j;
for(i=0;i printf(\printf(\for(i=0;i for(j=i+1;j if(a[i]>0&&a[j]<0) { t=a[i]; a[i]=a[j]; a[j]=t; } else if(a[i]>0&&a[j]==0) { t=a[i]; a[i]=a[j]; a[j]=t; } else if(a[i]==0&&a[j]<0) { t=a[i]; a[i]=a[j]; a[j]=t; } } } for(i=0;i printf(\printf(\ (2)设数组a的定义如下: int a[20] = {2,4,6,8,10,12,14,16}; 已存入数组中的数据值已经按由小到大的顺序存 优秀学习资料 欢迎下载 放,现从键盘输入一个数据,把它插入到数组中,要求插入新数据以后,数组数据仍然保持有序。请编写一个程序实现上述功能。 提示: 1)定义整型数组并初始化。 2)从键盘输入一个数据。 3)将该数据插入到数组中,由于要保证插入的数组仍然有序,所以需要查找插入的位置。 4)输出插入数据以后的数组。 #include int a[9]={2,4,6,8,10,12,14,16}; int i,j,number; printf(\原数组\\n\ for(i=0;i<=8;i++)//输出数组原有的元素 printf(\ printf(\ printf(\请输入一个数据\\n\ scanf(\ i=0;//以下三行找到插入位置 while(a[i] for(j=7;j>=i;j--)//将插入点以后的元素顺序往后移一位 a[j+1]=a[j]; a[i]=number;//插入数据 printf(\输出改变后的数组\\n\ for(i=0;i<=8;i++)//输出插入后仍有序的数组 printf(\ } 优秀学习资料 欢迎下载 (3)写一个3 x 5矩阵的转置程序,输出其原矩阵的值和转置以后的结果。 提示: 1)定义一个二维数组及相关变量。 2)对二维数组赋值,可以由键盘输入,也可以通过其他方式赋值。 3)输出转置前的二维数组。 4)对二维数组中的值进行转置。 5)输出转置后的二维数组中的值。 #include int i,j; int a[3][5]={1,2,3,4,5,6,7,8,9,1,2,3,4,5,0}; for(i=0;i<3;i++){ for(j=0;j<5;j++) printf(\ printf(\ } printf(\转置后的矩阵为\\n\ for(i=0;i<5;i++){ for(j=0;j<3;j++) printf(\ printf(\ } } 优秀学习资料 欢迎下载 (4)编程实现随机产生10个位于区间[100 200]互不相等的整数,并将其按降序排序和输出。 #include #define random(x)(rand()1+100) main() { int i,j,k,n;//产生随机数 int a[10]; srand((int)time(0)); for(i=0;i<=9;i++){ a[i]=random(200); printf(\ } printf(\ for(i=0;i<=9;i++){//排序 k=i; for(j=i;j<10;j++) if(a[k] printf(\排序后的数组为\\n\ for(i=0;i<10;i++) printf(\ printf(\ } 实验五 函数 实验 ( 验证性 综合性 实验 5学时) 1、目的要求: (1)学习函数的编程思想,编写一个包括3~4个函数的程序。