内容发布更新时间 : 2025/11/4 22:27:52星期一 下面是文章的全部内容请认真阅读。
(2)算法分析:排序是指将一组无序的数据按从小到大(升序)或从大到小(降序)的次序重新排列。下面算法采用的是冒泡法排序。  #include 
for i=0 to N-1 输入a[i]
for i=1 to N-1 for j=0 to N-i-1 真假
a[j]与a[j+1]交换 for i=0 to N-1 输出a[i]
      图5.1  冒泡法排序流程图       a[j]>a[j+1] #include 
cout<<\ for (i=0;i<=N-1;i++) cin>>a[i];
for (i=1;i<=N-1;i++) for (j=0;j<=N-i-1;j++) if (a[j]>a[j+1]) { temp=a[j];
a[j] =a[j+1]; a[j+1]=temp; }
for (i=0;i<=N-1;i++)
      cout< 下面算法采用的是选择法排序。 #include      cout<<\    for (i=0;i<=N-1;i++)       cin>>a[i];    for(i=0;i       { temp=a[i]; a[i]=a[j]; a[j]=temp;} }  for (i=0;i<=N-1;i++)        cout< 运行结果:  Input score:90  78  68  96  88  75  67  85  92  84 68    75  78  84  85  88  90  92  96   (3)  #include  {  float a[N][N],max,min,sum;    int i,j,r1=0,r2=0,c1=0,c2=0;    cout<<\   for(i=0; i     for(i=0; i               {     max= a[i][j];                      r1=i;c1=j;               }                else if (a[i][j]         if (i==j || i+j==N-1) sum+=a[i][j];       }      cout<<\    cout<<\    cout<<\}  运行结果: Input a[5][5]:  1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9  max=9   row1=4  col1=4 min=1   row2=0  col2=0 sum=45   (4)  #include  {   int  a[M][N],b[M][N],c[M][N],i,j;     cout<<\    for (i=0;i        cout<<\    for (i=0;i         c[i][j]= a[i][j]+b[i][j];    for (i=0;i            cout< 运行结果: Input a[M][N]: 1 2 3 4 5 6 7 8 9  Input b[M][N]: 3 2 1 6 5 4 9 8 7     4   4   4   10  10  10    16  16  16      实验五  1.实验目的 通过本次实验  (1)初步掌握有序数组的查找、增加、删除的编程方法;  (2)初步掌握字符数组的定义、赋初值与字符串处理函数的使用方法; (3)初步掌握字符串复制、连接、测长等程序的编写方法; (4)学会打印杨辉三角形的编程方法; (5)学会二维数据表的排序编程方法。 2.实验要求  (1)编写实验程序;  (2)在VC++运行环境中,输入源程序; (3)编译运行源程序;  (4)输入测试数据进行程序测试; (5)写出运行结果。 3.实验内容  (1)已有一按从小到大次序排序好的数组,现输入一数,要求用折半查找法找出该数在数组中的位置。 实验数据:  数组值为:10,12,14,16,18,20,22,24,26,28 输入数:  16  (2)编写程序,实现str=str1+str2的操作,此处运算符“+”表示将两个字符串str1、str2连接成一个字符串str。用键盘将两个字符串输入字符数组str1与str2中,连接后的字符串存放在字符数组str中,并输出连接后的字符串str。 1)用C++提供的字符串处理函数完成上述要求。 2)不用C++提供的字符串处理函数完成上述要求。 实验数据:abcde           fghij  (3)设计一个程序,按习题4.12的要求打印杨辉三角形。  (4)在表4.4中求每个学生的平均成绩及每门课的最高分与最低分,对学生成绩表用擂台法按平均成绩降序排序后输出。 表4.4  学生成绩情况表        学 号数 学语 文外 语平均成绩       1001908085        1002707580        1003657075        1004855060        1005809070        最高分           最低分         4.解答参考  (1)分析:对已排好序的数,折半查找法总是将要找的数与中间的元素比较,若大于它,则到后半部分去找,否则到前半部分去找。 #include     int low,high,i,mid;     cout<<\:\  //输入10个有序数    for(i=0;i    cout<<\             //输入要查找的数    cin>>b;     low=0;                             //设置查找的区间,开始时是全部    high=i-1;     mid=(low+high)/2;     while(a[mid]!=b&&low    if (b==a[mid])                    //找到      cout<    else                            //没找到      cout<<\}  运行结果:          Input sort array a[10]:          10 12 14 16 18 20 22 24 26 28 Input number b: 16         16 is on 3 (2)  解:解法一  #include  {   char str1[N],str2[N],str[2*N];      cout<<\ first String\    cin>>str1;      cout<<\ second  String\    cin>>str2;     strcpy(str,str1);     strcat(str,str2);