java定义一个int数组(java定义int类型数组)
java怎么重新定义int数组长度?
在Java中,数组对象Array的长度是在实例化时就定死了,不能修改。
像你这种情况,一般是新建一个数组,重新设置长度,可能的话再将老数组里的值拷贝进去:
public class ArrayTest {
public static void main(String[] args) {
int[] arr1 = { 1, 2, 3, 4, 5 }; // 初始化一个数组,长度是5(定死了)
int[] arr2 = new int[10];// 重新初始化数组,长度是10;
// 将老数组复制到新数组
for (int i = 0; i arr1.length; i++) {
arr2[i] = arr1[i];
}
// 将老数组对象arr1指向新数组
arr1 = arr2;
// 如果不要复制,最简单的就是直接实例化
int[] arr1_1 = new int[5];// 初始化一个数组,长度是5(定死了)
arr1_1 = new int[10]; // 再实例化一次,就是一个新数组,以前数组里的东西就不存在类
}
}
java定义一个整型数组并初始化,将数组中的最大值与最小值进行交换,并最后将数组输出出来
Java创建int数组,将最大值与最小值位置交换输出,代码以及截图如下:
import?java.util.Arrays;
public?class?Demo?{
public?static?void?main(String[]?args)?{
int[]?num?=?new?int[]?{?2,?1,?3,?4,?5?};
int[]?temp?=?new?int[num.length];//临时数组?创建是为了重新排序比较大小时不影响原数组顺序
for?(int?i?=?0;?i??num.length;?i++)?{
temp[i]?=?num[i];
}
Arrays.sort(temp);//升序排序
int?min?=?temp[0];//最小值
int?max?=?temp[temp.length?-?1];//最大值
for?(int?i?:?num)?{
????//逻辑判断,如果是最小值,输出最大值,否则,相反。
if?(i?==?min)?{
System.out.println(max);
}?else?if?(i?==?max)?{
System.out.println(min);
}?else?{
System.out.println(i);
}
}
}
}
运行示例:
java,定义一个长度是5的int数组,通过动态赋值求奇数的和,偶数的积?
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] array = new int[5];
Scanner scanner = new Scanner(System.in);
System.out.println("请输入五个数字");
for(int i=0;iarray.length;i++) {
array[i] = scanner.nextInt();
}
int singleSum = 0;
int doubleSum = 0;
for(int i=0;iarray.length;i++) {
if(array[i]%2 == 0) {
doubleSum += array[i];
}
else if(array[i]%2 == 1) {
singleSum += array[i];
}
}
System.out.println("奇数和是:" + singleSum);
System.out.println("偶数和是:" + doubleSum);
}
}
用java定义一个包含5个元素的int数组,并且初始化都为0,从键盘接收五个整
参考代码
import?java.util.Arrays;
import?java.util.Scanner;
public?class?ArryDemo?{
public?static?void?main(String[]?args)?{
//一:初始化数组
int[]?ary?=?new?int[5];//定义数组,并初始化,默认值就是0
// int?moren?=?0;//,这里可以修改为1,2等其他数
// for?(int?i?=?0;?i??ary.length;?i++)?{
// ary[i]?=?moren;//全部赋为moren
// }
System.out.println("初始化的数组:"+Arrays.toString(ary));
//二:输入数组的元素
Scanner?sc?=?new?Scanner(System.in);
for?(int?i?=?0;?i??ary.length;?i++)?{
System.out.println("请输入数组的第"?+?(i?+?1)?+?"个元素");
ary[i]?=?Integer.parseInt(sc.nextLine().trim());//读取键盘输入的数据,并转化为数字
}
System.out.println("赋值完的数组"+Arrays.toString(ary));
//三:颠倒数组的顺序
for?(int?begin?=?0,?end?=?ary.length?-?1;?begin??end;?begin++,?end--)?{
int?temp?=?ary[begin];
ary[begin]?=?ary;
ary?=?temp;
}
System.out.println("倒序后的数组"+Arrays.toString(ary));
sc.close();
}
}
测试
初始化的数组:[0,?0,?0,?0,?0]
请输入数组的第1个元素
2
请输入数组的第2个元素
3
请输入数组的第3个元素
5
请输入数组的第4个元素
6
请输入数组的第5个元素
8
赋值完的数组[2,?3,?5,?6,?8]
倒序后的数组[8,?6,?5,?3,?2]
JAVA定义一个int类型的一维数组,输出最大值的下标与最小值下标之和
#include "stdio.h"
int main()
{
int x[100],max,min,i,n;
printf("输入整数个数:");
scanf("%d",n);
printf("输入一组正整数:");
scanf("%d",x[0]);
max=0;min=0;
for(i=1;in;i++)
{
scanf("%d",x[i]);
if(x[max]x[i]) max=i;
if(x[min]x[i]) min=i;
}
printf("最大值是%d,下标(从0开始)%d\n最小值是%d,下标(从0开始)%d\n",x[max],max,x[min],min);
}