数组
Posted 月丫湾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组相关的知识,希望对你有一定的参考价值。
11、有数组a[n],用java代码将数组元素顺序颠倒
//用下面的也可以
//for(int i=0,int j=a.length-1;i<j;i++,j--) 是否等效于 for(int i=0;i<a.length/2;i++)呢?
import java.util.Arrays;
public class SwapDemo
public static void main(String[] args)
int [] a = new int[]
(int)(Math.random() * 1000),
(int)(Math.random() * 1000),
(int)(Math.random() * 1000),
(int)(Math.random() * 1000),
(int)(Math.random() * 1000)
;
System.out.println(a);
System.out.println(Arrays.toString(a));
swap(a);
System.out.println(Arrays.toString(a));
public static void swap(int a[])
int len = a.length;
for(int i=0;i<len/2;i++)
int tmp = a[i];
a[i] = a[len-1-i];
a[len-1-i] = tmp;
12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。
去零的代码:
return sb.reverse().toString().replaceAll("零[拾佰仟]","零").replaceAll("零+万","万").replaceAll("零+元","元").replaceAll("零+","零");
public class RenMingBi
/**
* @param args add by zxx ,Nov 29, 2008
*/
private static final char[] data = new char[]
\'零\',\'壹\',\'贰\',\'叁\',\'肆\',\'伍\',\'陆\',\'柒\',\'捌\',\'玖\'
;
private static final char[] units = new char[]
\'元\',\'拾\',\'佰\',\'仟\',\'万\',\'拾\',\'佰\',\'仟\',\'亿\'
;
public static void main(String[] args)
// TODO Auto-generated method stub
System.out.println(
convert(135689123));
public static String convert(int money)
StringBuffer sbf = new StringBuffer();
int unit = 0;
while(money!=0)
sbf.insert(0,units[unit++]);
int number = money%10;
sbf.insert(0, data[number]);
money /= 10;
return sbf.toString();
C++二维数组给一维数组赋值
比如我有个数组
char a[3][3] = 1,2,3,4,5,6,7,8,9;
如何把这个数组赋值给数组
char b[3];
b为123,456,789
二维数组给一维数组赋值有两种情况:
1 按元素,逐个赋值到对应目标元素上。
适用于所有情况,可以自定义规则,遍历二维数组,并赋值到一维数组的对应位置上。由二维数组的行列值计算出一维数组的偏移量,这部分算法可以随意设计,有很高的灵活度。
比如,将二维数组第一列复制出来称为一个单独的一维数组,可以写作:
int a[100][100], b[100];int i;
//二维数组赋值操作可以写在这里,与主题无关,代码从略。
for(i = 0; i < 100; i ++)
b[i] = a[i][0];//第一列即0列,C语言下标从0开始。
2 整体复制。
二维数组中的元素本身是连续存储的,如果要将二维数组连续的一组数据赋值给一维数组,可以直接调用memcpy函数。该函数声明在cstring中,形式为
void* memcpy(void *dst, void *src, size_t length);
功能为将src地址上,长度为length字节的数据,复制到dst地址上。
比如将第二三两行(这两行是连续的),复制到一维数组中,代码可以写作:
int a[100][100],b[200];//赋值,从略。
memcpy(b,a[1],sizeof(b));//整体复制。 参考技术A char b[3]; b的元素是char,456和789对于char类型的整数来说是溢出的
b是int类型的数组才行
int b[3];
int i;
for(i=0;i<3;i++)
b[i]=100*a[i][0]+10*a[i][1]+a[i][2];
这样b就是123,456,789了 参考技术B char类型的字符数组,存放整型数字,这个整型数字实际上是某个字符的ASCII码,比如41--A,42---B等。但是如果超过了ASCII中能够显示的字符范围,就会显示乱码。
建议将char b[3];修改为char *b[3] 参考技术C char b[3];
char a[3][3] = 1,2,3,4,5,6,7,8,9;
char temp[3];
for( int i = 0; i < 3; i ++)
for( int j =0; j< 3; j ++)
temp[j] = a[i][j];
b[i] = temp;
本回答被提问者采纳
以上是关于数组的主要内容,如果未能解决你的问题,请参考以下文章
C 语言数组 ( 数组指针 | 数组指针定义 | 使用 数组指针类型 定义数组指针 )
C 语言数组 ( 验证二维数组内存是线性的 | 打印二维数组 | 以一维数组方式打印二维数组 | 打印二维数组值和地址 )