#include <iostream>
using namespace std
int fun(int *a,int N)
{
int n=0,m
for(int i=0i<N-n-1i++)
{
for(int j=i+1j<N-nj++){
if(a[j]==a[i]){
m=1
for(int k=j+1k<N-nk++){
if(a[k]==a[i]){
m++
}
else{
a[j]=a[j+m]
j++
}
}
n+=m
}
}
}
return N-n
}
void print(int a[],int n)
{
for(int i=0i<ni++)
cout<<'\t'<<a[i]
cout<<endl
}
int main()
{
int a[10]={4,1,3,3,1,2,4,3,4,4},b[6]={1,2,1,3,2,1}
int n=fun(a,10)
cout<带念<袜行漏"数组a处理后的数组为:"
print(a,n)
n=fun(b,6)
cout<<"数组b处理后的数组为:"
print(b,n)
return 0
}
在main函数中,fun(7,3,a)表示调用前面定义的fun
(int
x,
int
y,
int
z)
函数
并把7,3,a这三个携局参数分别传简隐基给x,y,z
不过~由于fun函数中没有返回任何值,所以~~还是原来的a
要想得到那个等式z=x
*
x
+
y
*
y
的结果
应在该语句下加一条
return
z
但是~这样一来,a就没有作用到了拦谨。
不知道你的程序是要实现什么的
首先这个i在这里是全局变量,那个fun函数执行完了后并不释放i也就是一直保留i的值而不会消失,第一次执行fun函数时,k=0+10=10;i=10+10=20;返回k=10的值,这是第一个j=10;第二次执困此雀行fun函数时,k=0+20=20;这个20是i在第一次执行fun函数时,i=i+10这个语句得到的值,一直保留而没有被释放,即消失掉。在第二次执行fun函数时,扒搏i的值就是20了。那么k=20就汪早是这么来的,返回k值就是20. 最后输出的两个结果就是 10 20欢迎分享,转载请注明来源:内存溢出
评论列表(0条)