YTU 2418: C语言习题 矩阵元素变换
2418: C语言习题 矩阵元素变换
时间限制: 1 Sec 内存限制: 128 MB
提交: 293 解决: 155
题目描述
函数实现。用main函数调用。
输入
输入n和矩阵中的每个元素
输出
变换后的矩阵
样例输入
5
25 13 9 5 1
16 17 18 19 6
15 24 4 20 7
14 23 22 21 8
2 12 11 10 3
样例输出
1 13 9 5 2
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
3 12 11 10 4
提示
主函数已给定如下,提交时不需要包含下述主函数
/* C代码 */
int main()
{
void change(int *,int );
int **a,*p,i,j;
int n;
scanf("%d",&n);
p=(int*)malloc(n*n*sizeof(int));
a=(int**)malloc(n*sizeof(int *));
for(i=0; i<n; i++)
a[i]=p+n*i;
for (i=0; i<n; i++) //输入矩阵
for (j=0; j<n; j++)
scanf("%d",&a[i][j]);
change(p,n); //调用函数,实现交换
for (i=0; i<n; i++) //输出已交换的矩阵
{
for (j=0; j<n; j++)
printf("%d ",a[i][j]);
printf("\n");
}
free(p);
free(a);
return 0;
}
/* C++代码 */
int main()
{
void change(int *,int );
int **a,*p,i,j;
int n;
cin>>n;
p=new int[n*n];
a=new int*[n];
for(i=0; i<n; i++)
a[i]=p+n*i;
for (i=0; i<n; i++) //输入矩阵
for (j=0; j<n; j++)
cin>>a[i][j];
change(p,n); //调用函数,实现交换
for (i=0; i<n; i++) //输出已交换的矩阵
{
for (j=0; j<n; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
delete []p;
delete []a;
return 0;
}
迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……
#include <iostream>
using namespace std;
void change(int *k,int p)
{
int t,*min,*max,i,j;
min=max=k;
for(i=0; i<p; i++)
for(j=0; j<p; j++)
{
if(*(k+p*i+j)<*min)
min=k+p*i+j;
else if(*(k+p*i+j)>*max)
max=k+p*i+j;
}
t=*max;
*max=*(k+(p*p)/2);
*(k+(p*p)/2)=t;
t=*min;
*min=*k;
*k=t;
min=&*(k+1);
for(i=0; i<p; i++)
for(j=0; j<p; j++)
if((k+p*i+j)!=k)
if(*(k+p*i+j)<*min)
min=k+p*i+j;
t=*min;
*min=*(k+p-1);
*(k+p-1)=t;
min=&*(k+1);
for(i=0; i<p; i++)
for(j=0; j<p; j++)
if((k+p*i+j)!=(k+p-1)&&(k+p*i+j)!=k)
if(*(k+p*i+j)<*min)
min=k+p*i+j;
t=*min;
*min=*(k+p*(p-1));
*(k+p*(p-1))=t;
min=&*(k+1);
for(i=0; i<p; i++)
for(j=0; j<p; j++)
if((k+p*i+j)!=k&&(k+p*i+j)!=(k+p-1)&&(k+p*i+j)!=(k+p*(p-1)))
if(*(k+p*i+j)<*min)
min=k+p*i+j;
t=*min;
*min=*(k+p*p-1);
*(k+p*p-1)=t;
}
int main()
{
void change(int *,int );
int **a,*p,i,j;
int n;
cin>>n;
p=new int[n*n];
a=new int*[n];
for(i=0; i<n; i++)
a[i]=p+n*i;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
cin>>a[i][j];
change(p,n);
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
delete []p;
delete []a;
return 0;
}
YTU 2418: C语言习题 矩阵元素变换的更多相关文章
- YTU 2973: C语言习题5.25--文件操作2
2973: C语言习题5.25--文件操作2 时间限制: 1 Sec 内存限制: 128 MB 提交: 242 解决: 105 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编 ...
- YTU 2414: C语言习题 字符串排序
2414: C语言习题 字符串排序 时间限制: 1 Sec 内存限制: 128 MB 提交: 656 解决: 305 题目描述 输入n个字符串,将它们按字母由小到大的顺序排列并输出.编写三个函数实 ...
- YTU 2974: C语言习题5.26--文件操作3
2974: C语言习题5.26--文件操作3 时间限制: 1 Sec 内存限制: 128 MB 提交: 213 解决: 92 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编号 ...
- YTU 2972: C语言习题5.24--文件操作1
2972: C语言习题5.24--文件操作1 时间限制: 1 Sec 内存限制: 128 MB 提交: 248 解决: 94 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编号 ...
- YTU 2425: C语言习题 输出月份
2425: C语言习题 输出月份 时间限制: 1 Sec 内存限制: 128 MB 提交: 476 解决: 287 题目描述 编写一程序,输入月份号,输出该月的英文月名.例如,输入3,则输出Mar ...
- YTU 2420: C语言习题 不等长字符串排序
2420: C语言习题 不等长字符串排序 时间限制: 1 Sec 内存限制: 128 MB 提交: 460 解决: 239 题目描述 在主函数中输入n(n<=10)个不等长的字符串.用另一函 ...
- YTU 2419: C语言习题 等长字符串排序
2419: C语言习题 等长字符串排序 时间限制: 1 Sec 内存限制: 128 MB 提交: 650 解决: 249 题目描述 在主函数中输入n(n<=10)个等长的字符串.用另一函数对 ...
- YTU 2424: C语言习题 字符串比较
2424: C语言习题 字符串比较 时间限制: 1 Sec 内存限制: 128 MB 提交: 1042 解决: 613 题目描述 写一函数,实现两个字符串的比较.即自己写一个strcmp函数,函数 ...
- YTU 2417: C语言习题 字符串长度
2417: C语言习题 字符串长度 时间限制: 1 Sec 内存限制: 128 MB 提交: 758 解决: 548 题目描述 写一函数,求一个字符串的长度.在main函数中输入字符串,并输出其长 ...
随机推荐
- ArrayList集合的遍历
ArrayLIstDemo3.java import java.util.ArrayList; public class ArrayListDemo3 { public static void mai ...
- LaTeX模板
学校linux机子根本跑不动libreoffice,wps没有公式,只好上LaTeX了. 先 beamer: 需要安装firasans和firamono字体,思源黑体SC \documentclass ...
- js清除非数字输入
function clearNoNum(obj) { obj.value = obj.value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符 ...
- [HDU5919]Sequence II
[HDU5919]Sequence II 试题描述 Mr. Frog has an integer sequence of length n, which can be denoted as a1,a ...
- ACDream:1210:Chinese Girls' Amusement【水题】
Chinese Girls' Amusement Time Limit: 2000/1000MS (Java/Others)Memory Limit: 128000/64000KB (Java/Oth ...
- hdu 2845
#include<stdio.h> #define N 200100 int f[N]; int a[N],n; int main() { int m,j,i,suma,sumb,sum ...
- hdu 1528 二分匹配
#include<stdio.h> #include<string.h> int map[100][100],mark[100],link[100],max2,k; int f ...
- python学习之-- mysql模块和sqlalchemy模块
简单介绍python下操作mysql数据库模块有2个:pyhton-mysqldb 和 pymysql 说明:在python3中支持mysql 的模块已经使用pymysql替代了MysqlDB(这个 ...
- Codeforces Beta Round #57 (Div. 2) E. Enemy is weak
求满足条件的三元组的个数,可以转换求一元组和二元组组成的满足条件的三元组的个数,且对于(x),(y,z),x > y,且x出现的p_x < p_y. x可直接枚举O(n),此时需要往后查询 ...
- asterisk 相关数据库配置 使用
Linux/Unix下ODBC的安装: 先下载最新的unixODBC源码包(http://www.unixodbc.org/unixODBC-2.2.1.tar.gz)放到/usr/local下,然后 ...