c语言,急急急,求

输入16个整数,存放到4*4的二维数组中,用冒泡法按从大到小的顺序进行排序,然后输出。要求输入、排序、输出各个环节都要用到指向数组的指针,其中排序环节交换数据要求用自定义... 输入16个整数,存放到4*4的二维数组中,用冒泡法按从大到小的顺序进行排序,然后输出。要求输入、排序、输出各个环节都要用到指向数组的指针,其中排序环节交换数据要求用自定义的swap(int *p1,int *p2)函数实现。 展开
 我来答
小黑哎啊
科技发烧友

2020-06-05 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:1642
采纳率:74%
帮助的人:343万
展开全部

#include<stdio.h>

void swap(int *p1,int *p2)

{

int t;

t=*p1;

*p1=*p2;

*p2=t;

}

int main()

{

int a[4][4],k=0;

int (*p)[4]=a;//指针p指向数组a 

int b[16],*x=b;//指针指向数值b 

for(int i=0;i<4;i++)

for(int j=0;j<4;j++)

{

scanf("%d",p[i]+j);//输入 

*(x+k++)=*(p[i]+j);//二维数组向一维数组转化; 

}

for(int i=0;i<16;i++)//冒泡排序 

for(int j=0;j<15-i;j++)

if(*(x+j)<*(x+j+1))

swap(x+j,x+j+1);//调用函数交换数值 

for(int i=0;i<4;i++)

for(int j=0;j<4;j++)

*(p[i]+j)=x[4*i+j];//一维数组转化为二位数值 

for(int i=0;i<4;i++)

for(int j=0;j<4;j++)//输出 

{

printf("%d ",*(p[i]+j));

if(j==3)

printf("\n");

}

return 0;

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式