已知一个二维数组用c语言获得新的二维数组 - 爱问答

(爱问答)

已知一个二维数组用c语言获得新的二维数组

已知一个二维数组:d[6][4]={{1,2,6,3},{2,6,8,1},{6,3,9,5},{7,1,4,5},{2,7,5,6},{1,3,7,2}}想要得到新的二维数组是:f[6][3]={{1,2,4,3},{2,3,4,1},{3,1,4,2},{4,1,2,3},{1,4,2,3},{1,3,4,2}}用c语言如何实现详细说明:新的二维数组6行4列第一列二维数组的元素{1,2,4,3}分别对应已知二维数组第一列元素{1,2,6,3}对应的大小序号第二列二维数组的元素{2,3,4,1}分别对应已知二维数组第二列元素{2,6,8,1}对应的大小序号以此类推...............................................第六列二维数组的元素{1,3,4,2}分别对应已知二维数组第六列元素{1,3,7,2}对应的大小序号

结果不应该是f[6][3],而是f[6][4].程序参考:

#include <stdio.h>
#include <stdlib.h>
int sort_function( const void *a, const void *b) //排序比较函数
{
   return *(int *)a-*(int *)b;
}
void fun(int *d,int *f)
{
   int t[4],i,j;
   for(i=0;i<4;i++)
       t[i]=d[i];
   qsort(t,4,sizeof(int), sort_function); //排序
   for(i=0;i<4;i++)
   {
       for(j=0;j<4;j++)
           if (d[i]==t[j])
           {
               f[i]=j+1;
               break;
           }
   }
}
int  main()
{
   int d[6][4]= {{1,2,6,3},{2,6,8,1},{6,3,9,5},{7,1,4,5},{2,7,5,6},{1,3,7,2}};
   int f[6][4];
   int i,j;
   for(i=0; i<6; i++)
       fun(d[i],f[i]);
   for(i=0;i<6;i++)
   {
       for(j=0;j<4;j++)
           printf("%2d",f[i][j]);
       printf(" ");    
   }
   return 0;
}

结果

已知一个二维数组用c语言获得新的二维数组

另外,排序你可能自己写(我用的是C标准函数)

相关标签:c语言

下一篇:微信加了一个人他说小游戏搬砖一天能挣200300,只需要一台电脑,

上一篇:怎样在无监控的情况找出小偷

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?