跪求高人帮忙,急用 !!!!!!!!!!! (在线等)

来源:百度知道 编辑:UC知道 时间:2024/06/14 06:53:05
假定数组a[]中有若干个值为0的元素,用一个循环语句,把a中非0元素放到数组的前半部分,要求非0元素的相对次序保持不变。输出非零元素个数和重排后的数组元素(不输出0元素)。(在线等)

#include"stdio.h"
void main()
{
char *p,*q,*p[],*q[];
int i,j=0,k;
int N=9;
int a[]={2,3,2,0,6,20,2,0,1,21},b[8];
for(i=0;i<N+1;i++)
{
if(a[i]!=0)
b[j++]=a[i];
if(i==N-1)
for(k=0;k<j;k++)
{
a[k]=b[k];
}

}
for(i=0;i<8;i++)
printf("%d,",b[i]);

#include "stdafx.h"
#include <iostream>
using namespace std;

#define SIZE 10

void main()
{
int arr1[SIZE]={0,2,3,0,0,4,6,0,0,9};
int arr2[SIZE];
int j=0;
for(int i=0;i<SIZE;++i)
{
if(arr1[i])
arr2[j++]=arr1[i];
}
cout<<"非零元素个数为: "<<j<<endl;
for(int i=0;i<j;++i)
{
cout<<arr2[i]<<" ";
}

}

long i,j;
for (i=0; i<Count; i++)
{
if(a[i] !=0)
a[j++] = a[i];
}

j是非零个数