栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

XDOJ-元素放置

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

XDOJ-元素放置

标题
元素放置

描述
定义一个一维整形数组num[50],输入正整数m、n(2≤m≤n≤7),输入一个m* n整形矩阵(值小于100),编写函数place()完成矩阵元素S型放置,从小到大排列,主函数完成数组输入和输出。

时间限制
1

内存限制
10000

类别
1

输入说明
输入正整数m和n(2≤m≤n≤7),输入一个m * n整形矩阵,含m * n个元素(值小于100)。

输出说明
格式输出:按行输出处理后的矩阵,S型排列, % 3d,每行换行,最后一行不换行。

输入样例
3 3
15 14 21
34 22 37
40 16 50

输出样例
16 15 14
21 22 34
50 40 37


提示
S型排列,输出格式 % 3d,每行换行,最后一行不换行。

#include
void place(int m, int n, int* num);
int main()
{
	int num[50]={0};
	int m, n;
	scanf_s("%d %d", &m, &n);
	//gets_s(num);//gets是‘字符’串输入
	for (int i = 0; i < m * n; i++)
		scanf_s("%d", &num[i]);
	place(m, n, num);
	for (int i = 0; i < m * n - n; i++)
	{		
		printf("%3d", num[i]);
		int t = (i + 1) % n;//每n个数换行,这个判断方法很巧妙!忘了这是借鉴谁的了,嘿嘿
		if (t == 0)
			printf("n");
	}
	for (int i = m * n - n; i < m * n; i++)
		printf("%3d", num[i]);//最后一行不换行

	return 0;
}
void place(int m, int n, int* num)
{

	int change;
	for (int i = 0; i < m * n-1; i++)
	{
		for(int j=i;j num[j])
		{
			change = num[i];
			num[i] = num[j];
			num[j] = change;
		}

	}//所有数从小到大排序

	//for (int i = 0; i < m * n; i++)
	//	printf("检验排序%3d", num[i]);

	int t;
	int i, j=0;
	for (t = 0; j < m * n; t=t+2)
	{
		for (i =t*n,j=(t+1)*n-1 ; i 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/693202.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号