你这个功能:将数组里非0的元素,复制到新数组
public static void main(String[] args) {int[] w = { 1, 2, 3, 0 }
int j = 0
// 获取非0元素的个数
for (int i = 0 i < w.length i++) {
if (w[i] != 0) {
j++
}
}
// 定义新数组
int[] newarr = new int[j]
j = 0
// 非0元素赋值
for (int i = 0 i < w.length i++) {
if (w[i] != 0) {
newarr[j] = w[i]
j++
}
}
// 输出
for (int i = 0 i < newarr.length i++) {
System.out.print(newarr[i] + ",")
}
}
下次,发程序,别贴图片,没人愿意把你的程序,再打一遍
main() -- 主函数{static int a[2][3]={{1,2,3},{4,5,6}}-- 静态整型数组a,2行3 列,初值第一行 1,2,3,第二行 4,5,6
static int b[3][2]-- 静态整型数组b,3行2 列,初值全0(因为静态,初值给全0 -- 同编译器有关)
int i=1,j=1 -- 整型数i,j. 初值 各为 1
b[i][j]=a[i][j] -- a[1][1](等于 5) 赋给 b[1][1]
for(i=0i<=2i++)
{for(j=0j<=1j++)
printf("%d",b[i][j]) -- 循环输出 b 数组组的元素,按行的次序。
printf("\n")}
}
#include<stdio.h>#include<conio.h>
int n=6
void fun(int *a,int *odd,int *even)
{
int i
*odd=0 //此行开始的2行,初始化奇数、偶数的总和为0
*even=0
for(i=0i<ni++) //扫描整个数组
{
if(*a%2==1) *odd=*odd+*a //判断,若指针所指的元素为奇数,则加到*odd中
else *even=*even+*a //否则,是偶数,则加到*even中
a++ //指针后移一位,准备处理下一个数
}
}
void main()
{
int a[6],i,odd,even
printf("please input the number to the array:")
for(i=0i<ni++) //此行开始的2行,输入6个整数并存入数组a
scanf("%d",a+i)
printf("\nthe original data is:") //此行开始的4行,输出提示及数组中的数
for(i=0i<ni++)
printf("%5d",*(a+i))
printf("\n")
fun(a,&odd,&even) //调用函数,统计数组中奇数及偶数的总和
printf("the sum of odd number:%d\n",odd) //此行开始的2行,输出奇数及偶数的总和
printf("the sum or even number:%d\n",even)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)