编程题 矩阵一周元素之和与单词颠倒位置输出
2015-10-11 15:08
211 查看
矩阵一周元素之和与单词颠倒位置输出
1、M*N数组外围数组之和
如3*3数组:
1 2 3
4 5 6
7 8 9
和为1+2+3+6+9+8+7+4=40
函数原型为: int fun(int *a,int m,int n);
这里要注意int *a其中a是一个一维数组。不能直接当二维数组应用。
main()函数调用:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
int n=fun(a,4,3)
当然也可以先把一维数组转出二位数组:
int **b;
b=new int *[M];
for(int i=0;i<M;i++)
b[i]=new int
;
for(int i=0;i<M;i++)
for(int j=0;j<N;j++)
b[i][j]=a[i*N+j];
用完记得释放,即:
for(int i=0;i<M;i++)
delete b[i];
delete b;
2、单词颠倒输出:
如输入:I am programmer
输出为:programmer am I
C++ code
java code 很简单
1、M*N数组外围数组之和
如3*3数组:
1 2 3
4 5 6
7 8 9
和为1+2+3+6+9+8+7+4=40
函数原型为: int fun(int *a,int m,int n);
这里要注意int *a其中a是一个一维数组。不能直接当二维数组应用。
int fun(int *a,int M,int N) { int i,sum=0; for(i=0;i<N;i++) //第一行元素与最后一行的元素之和 sum+=a[i]+a[(M-1)*N+i]; for(i=1;i<M-1;i++) //其余各行第一个元素与最后一个元素之和 sum+=a[i*N]+a[i*N+N-1]; return sum; }
main()函数调用:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
int n=fun(a,4,3)
当然也可以先把一维数组转出二位数组:
int **b;
b=new int *[M];
for(int i=0;i<M;i++)
b[i]=new int
;
for(int i=0;i<M;i++)
for(int j=0;j<N;j++)
b[i][j]=a[i*N+j];
用完记得释放,即:
for(int i=0;i<M;i++)
delete b[i];
delete b;
2、单词颠倒输出:
如输入:I am programmer
输出为:programmer am I
C++ code
char *fun(char *sstr,char *dstr) { char *t; char *p; int len=strlen(sstr); p=new char[len+1]; t=new char[len+1]; for(int i=0;i<len;i++) t[i]=sstr[i]; //方便修改数组中的内容 t[len]='\0'; for(int i=0;i<len;i++) //必须的 p[i]='\0'; while(len--) { if(*(t+len)==' ') { p=strcat(p,t+len+1); *(p+strlen(p))=' '; *(p+strlen(p)+1)='\0'; t[len]='\0'; } } //处理第一个单词 p=strcat(p,t); //cout<<p<<endl; strcpy(dstr,p); delete [] p; delete [] t; return dstr; }
java code 很简单
import java.util.Scanner;; public class Main { public static void main(String args[]) { Scanner in=new Scanner(System.in); String str=null; str=in.nextLine(); String st[]=str.split(" "); for(int i=st.length-1;i>=0;i--) { System.out.print(st[i]); System.out.print(" "); } } }
相关文章推荐
- 单例分享(循环引用及内存占用解决)
- C++标准程序库笔记(1)
- C++的构造函数浅析
- C语言宏定义##连接符和#符的使用
- 多种方法解决同一个问题(一)-----乘法口诀表
- c++的基本语言知识(三)
- c++的基本语言知识(四 )
- 用C/C++解决一些数学问题(一)
- C/C++的基本语言知识(五)
- 用C/C++解决一些数学问题(二)
- 用C/C++解决一些数学问题(三)
- 函数重载的意义详细说明
- 总结:用一个例子包含c++的所有的基本知识点(一)
- 日历查询
- 一些程序函数 C++语言,找数组中弟第K大的数和自己写的子符串截取函数
- 狐狸抓兔子的问题
- 尾单词长度、1 3 9 27 81 实现1-121任意算法、去除重复字符并排序、拼音转数字、按要求分解字符串
- 约瑟夫环 数组与链表实现
- “输出下一秒”
- 实现两个大数相加!