int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至
2011-08-17 19:58
330 查看
int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至
数组前面并保持有序(按原来顺序),返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)
#include<iostream>
#define nsize 18
using namespace std;
int func(int *A,int Nsize);
int func(int *A,int Nsize)
{
int i,k,t=1,flag=0;
for(i=0;i<Nsize-1;i++)
{
if(A[i]==0&&flag==0)
{
k=i;//记录第一个零的下标
flag=1;
}
if(A[i]==0&&A[i+1]!=0)
{
A[i+1-t]=A[i+1];
A[i+1]=0;
}
else if(A[i]==0&&A[i+1]==0)
{
t++;//记录0的个数
}
}
return k;
}
int main()
{
int a[nsize]={1,2,3,4,0,5,7,0,7,5,3,2,0,234,3,0,2,4};
cout<<func(a,nsize)<<endl;
for(int i=0;i<nsize;i++)
cout<<a[i]<<" ";
return 0;
}
数组前面并保持有序(按原来顺序),返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)
#include<iostream>
#define nsize 18
using namespace std;
int func(int *A,int Nsize);
int func(int *A,int Nsize)
{
int i,k,t=1,flag=0;
for(i=0;i<Nsize-1;i++)
{
if(A[i]==0&&flag==0)
{
k=i;//记录第一个零的下标
flag=1;
}
if(A[i]==0&&A[i+1]!=0)
{
A[i+1-t]=A[i+1];
A[i+1]=0;
}
else if(A[i]==0&&A[i+1]==0)
{
t++;//记录0的个数
}
}
return k;
}
int main()
{
int a[nsize]={1,2,3,4,0,5,7,0,7,5,3,2,0,234,3,0,2,4};
cout<<func(a,nsize)<<endl;
for(int i=0;i<nsize;i++)
cout<<a[i]<<" ";
return 0;
}
相关文章推荐
- int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至数组前面并保持有序
- (2)int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)
- int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至后面
- int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至 数组前面并保持有序,返回值为原数据中第一个
- 上海华为的一道关于指针方面的编程题 int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize)
- 写一个函数int Func(int* A, int nSize), 使A把0移至后面,非0整数移至数组前面 并保持有序,返回值为原数据中第一个元素为0的下标。
- 面试编程题---其中隐藏着若干0,其余非0整数,使A把0移至后面,非0整数移至数组前面并保持有序
- 编写函数int stat(int a[],int n,int c[][2])。a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位
- 二、 编写函数int stat(int a[],int n,int c[][2])。a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位
- 编写函数int stat(int a[],int n,int c[][2])。a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位的
- 编写函数int stat(int a[],int n,int c[][2])。a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位的
- 【详解】C语言:编写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数。保存到s中。
- 编写一个函数,从标准输入读取一列整数, 把这些值存储在一个动态分配的数组中并返回这个数组。 函数通过观察EOF判断输入列表是否结束。 数组的第一个数是数组包含的值的个数, 它的后面就是这些整数值。
- /*编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入一个数,输出是否为素数*/
- 1.写一个函数返回参数二进制中1的个数2.获取一个数二进制序列中所有的偶数为和奇数位,分别输出二进序列3.输出一个整数的每一位4.编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(b
- c程序:编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入一个数,输出是否为素数
- C语言:实现一个函数itoa(int n,char s[]),将整数n这个数字转换为对应的字符串,保存到s中
- 【C语言】【笔试题】编写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数。保存到s中。
- 编写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数。保存到s中。
- 实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数