问题21:
有一个3×4的矩阵,要求编写程序找出每一行中最大值并与第一列交换。(20分)
问题22:
用指针实现:把一个整数插入到由小到大排列的数列中,插入后仍然保持由小到大的顺序。(20分)
问题21实现代码:
/* author:宋金时 */
/* date:2011/11/04 */#include "Stdio.h"
#include "Conio.h"
#define HANG 3
#define LIE 4int main(void)
{/* 此处添加你自己的代码 */int arr_num[HANG][LIE],m_i,m_j,m_max;puts("please a 3*4 number:");for(m_i=0;m_i<HANG;m_i++){for(m_j=0;m_j<LIE;m_j++){scanf("%d",&arr_num[m_i][m_j]);}}for(m_i=0;m_i<HANG;m_i++){m_max = 0;for(m_j=0;m_j<LIE;m_j++){if(arr_num[m_i][m_j]>arr_num[m_i][m_max]){m_max = m_j;}}arr_num[m_i][0]^=arr_num[m_i][m_max];arr_num[m_i][m_max]^=arr_num[m_i][0];arr_num[m_i][0]^=arr_num[m_i][m_max];for(m_j=0;m_j<LIE;m_j++){printf("%d ",arr_num[m_i][m_j]);}printf("\n");}getch();return 0;
}
问题22实现代码:
/* author:宋金时 */
/* date:2011/11/04 */#include "Stdio.h"
#include "Conio.h"#define N 20
#define INIT_COUNT 5
int g_count=INIT_COUNT;
void insert(int arr_num[],int num);int main(void)
{/* 此处添加你自己的代码 */int m_arr[N]={1,2,3,4,5},m_input;puts("please input insert's number:");scanf("%d",&m_input);insert(m_arr,m_input);getch();return 0;
}void insert(int arr_num[],int num)
{int m_i,m_pos=-1;int* m_p = arr_num;for(m_i=0;m_i<g_count;m_i++){if(num<=*(m_p+m_i)){m_pos = m_i;break;}}if(m_pos!=-1){for(m_i=g_count;m_i>m_pos;m_i--){*(m_p+m_i) = *(m_p+m_i-1);}*(m_p+m_pos) = num;}else{*(m_p+g_count) = num;}g_count++;puts("inserted data:");for(m_i=0;m_i<g_count;m_i++){printf("%d ",*(m_p+m_i));}printf("\n");
}