(6)巩固一下C语言基础知识,谁动手,谁收获。

来源:互联网 发布:台湾自由行 知乎 编辑:程序博客网 时间:2024/05/18 16:14

问题21:
有一个3×4的矩阵,要求编写程序找出每一行中最大值并与第一列交换。(20分)


问题22:
用指针实现:把一个整数插入到由小到大排列的数列中,插入后仍然保持由小到大的顺序。(20分)

问题21实现代码:

view plainprint?
  1. /* author:宋金时 */  
  2. /* date:2011/11/04 */  
  3.   
  4. #include "Stdio.h"  
  5. #include "Conio.h"  
  6. #define HANG 3  
  7. #define LIE 4  
  8.   
  9. int main(void)  
  10. {  
  11.  /* 此处添加你自己的代码 */  
  12.   int arr_num[HANG][LIE],m_i,m_j,m_max;  
  13.   puts("please a 3*4 number:");  
  14.   for(m_i=0;m_i<HANG;m_i++)  
  15.   {  
  16.     for(m_j=0;m_j<LIE;m_j++)  
  17.     {  
  18.         scanf("%d",&arr_num[m_i][m_j]);  
  19.     }  
  20.   }  
  21.   for(m_i=0;m_i<HANG;m_i++)  
  22.   {  
  23.     m_max = 0;  
  24.     for(m_j=0;m_j<LIE;m_j++)  
  25.     {  
  26.        if(arr_num[m_i][m_j]>arr_num[m_i][m_max])  
  27.        {  
  28.         m_max = m_j;  
  29.        }  
  30.     }  
  31.     arr_num[m_i][0]^=arr_num[m_i][m_max];  
  32.     arr_num[m_i][m_max]^=arr_num[m_i][0];  
  33.     arr_num[m_i][0]^=arr_num[m_i][m_max];  
  34.     for(m_j=0;m_j<LIE;m_j++)  
  35.     {  
  36.         printf("%d ",arr_num[m_i][m_j]);  
  37.     }  
  38.     printf("\n");  
  39.   }  
  40.   getch();  
  41.   return 0;  
  42. }  

问题22实现代码:
view plainprint?
  1. /* author:宋金时 */  
  2. /* date:2011/11/04 */  
  3.   
  4. #include "Stdio.h"  
  5. #include "Conio.h"  
  6.   
  7. #define N 20  
  8. #define INIT_COUNT 5  
  9. int g_count=INIT_COUNT;  
  10. void insert(int arr_num[],int num);  
  11.   
  12. int main(void)  
  13. {  
  14.  /* 此处添加你自己的代码 */  
  15.   int m_arr[N]={1,2,3,4,5},m_input;  
  16.   puts("please input insert's number:");  
  17.   scanf("%d",&m_input);  
  18.   insert(m_arr,m_input);  
  19.   getch();  
  20.   return 0;  
  21. }  
  22.   
  23. void insert(int arr_num[],int num)  
  24. {  
  25.     int m_i,m_pos=-1;  
  26.     int* m_p = arr_num;  
  27.     for(m_i=0;m_i<g_count;m_i++)  
  28.     {  
  29.         if(num<=*(m_p+m_i))  
  30.         {  
  31.             m_pos = m_i;  
  32.             break;  
  33.         }  
  34.     }  
  35.     if(m_pos!=-1)  
  36.     {  
  37.         for(m_i=g_count;m_i>m_pos;m_i--)  
  38.         {  
  39.            *(m_p+m_i) = *(m_p+m_i-1);  
  40.         }  
  41.         *(m_p+m_pos) = num;  
  42.     }  
  43.     else  
  44.     {  
  45.         *(m_p+g_count) = num;  
  46.     }  
  47.     g_count++;  
  48.     puts("inserted data:");  
  49.     for(m_i=0;m_i<g_count;m_i++)  
  50.     {  
  51.         printf("%d ",*(m_p+m_i));  
  52.     }  
  53.     printf("\n");  
  54. }  

原创粉丝点击