优秀学习资料 欢迎下载
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个函数的程序。