#include<iostream>
#include<string.h>
#include<stdlib.h>
using namespace std;
class Test3{
public :
Test3();
void change();
private :
int a[100];
int n =0;
int *p;
};
Test3::Test3(){
}
void Test3::change(){
int i = 0, j = 0;
cin >> n;
for (; i < n; i++){
cin >> a[i];
}
p = a;
for (; i < n; i++){
if (*(p + i) == 0){
for (j = i; j < n - 1; j++){
*(p + j) = *(p + j + 1);
}
*(p + n - 1) = 0;
n--;
}
cout << a[i];
}
}
int main(){
Test3 t();
t.change();
system("pause");
return 0;
}
以上代码是实现
3.有一个数组int a[n],使用指针操作实现函数
int myfunc(int p,int n);
将a中的0都移动至数组末尾,将非0的移至开始(保持原来的顺序不变)
例如:A原来是1,0,3,4,0,-3,5
经过myfunc处理后为:1,3,4,-3,5,0,0。
这个功能的。
在
t.change();
这行代码提示表达式必须包含类类型,这句话是什么意思?如何解决呢?
ringa_lee2017-04-17 13:30:54
Test3 t();
不能这么写
你这么写等于声明了一个函数t,它返回Test3的类型。
如果你想表达的是“定义一个Test3类型的变量,以它的默认构造函数”,那么去掉括号即可。