注册 登录
编程论坛 C++教室

指针与函数的问题,求大侠帮我看一下

aiyinsitan 发布于 2010-05-24 18:26, 408 次点击
#include "iostream.h"
void f(int a[],int b[],int j);
void print(int b[],int j);
void main()
{
    int a[10],i,b[10],j=0;
    for(i=0;i<=9;i++)
        cin>>a[i];
   for(i=0;i<=9;i++)
    cout<<a[i]<<"   ";
    cout<<endl;
    cout<<"==================="<<endl;
   f(a,b,j);
   print(b,j);

}
void f(int a[],int *pb,int j)
{
    int *p,c1,c2,c3,i;
    p=a;
    for(i=0;i<=9;i++,p++)
    {
        c1=*p/100;
        c2=*p%100/10;
        c3=*p%10;
        if(c2>c3+c1)
        {*pb=*p;
         pb++;
        j++;
        }
        p++;
    }
}
void print(int b[],int j)
{   
    int i,k,*p,t;
    for(i=0;i<=j;i++)
    {
        p=b;
    for(k=0;k<=j-i;k++)
    {
        if(*p>*p++)
        {
            t=*p;
            *p=*p++;
            *p++=t;
        }
        p++;
    }   
    }
    p=b;
    for(i=0;i<=j;i++)
    { cout<<*p;
      p++;
    }
}
编写程序,要求在10个三位数中找出满足每个十位数大于百位数加个位数之和的数据,并将这些数据按升序排列,要求用指针
4 回复
#2
aiyinsitan2010-05-24 18:29
只有本站会员才能查看附件,请 登录

这是我的问题,他只输出一个,不知是怎么回事。
#3
rwyangguang2010-05-24 19:55
#include "iostream.h"
void f(int a[],int b[],int j);
void print(int b[],int j);
void main()
{
    int a[10],i,b[10],j=0;
    for(i=0;i<=9;i++)
        cin>>a[i];
   for(i=0;i<=9;i++)
    cout<<a[i]<<"   ";
    cout<<endl;
    cout<<"==================="<<endl;
   f(a,b,j);
   print(b,j);

}
void f(int a[],int *pb,int j)
{
    int *p,c1,c2,c3,i;
    p=a;
    for(i=0;i<=9;i++,p++)
    {
        c1=*p/100;
        c2=*p%100/10;
        c3=*p%10;
        if(c2>c3+c1)
        {*pb=*p;
         pb++;
        j++;
        }
        p++;
    }
}
void print(int b[],int j)
{   
    int i,k,*p,t;
    for(i=0;i<=j;i++)
    {
        p=b;
    for(k=0;k<=j-i;k++)
    {
        if(*p>*p++)
        {
            t=*p;
            *p=*p++;
            *p++=t;
        }
        p++;
    }   
    }
    p=b;
    for(i=0;i<=j;i++)
    { cout<<*p;
      p++;
    }
}
#4
rwyangguang2010-05-24 20:02
刚刚好像发错了
#include "iostream.h"
void f(int a[],int b[],int &j);
void print(int b[],int j);
void main()
{
    int a[10],i,b[10],j=0;
    for(i=0;i<=9;i++)
        cin>>a[i];
   for(i=0;i<=9;i++)
    cout<<a[i]<<"   ";
    cout<<endl;
    cout<<"==================="<<endl;
   f(a,b,j);
   print(b,j);

}
void f(int a[],int *pb,int &j)//这加&  别忘了函数说明,其他自己看看
{
    int *p,c1,c2,c3,i;
    p=a;
    for(i=0;i<=9;i++)
    {
        c1=*p/100;
        c2=*p%100/10;
        c3=*p%10;
        if(c2>c3+c1)
        {*pb=*p;
         pb++;
        j++;
        }
        p++;
    }
}
void print(int b[],int j)
{   
    int i,k,*p,t;
    for(i=0;i<j-1;i++)
    {
        p=b;
    for(k=0;k<j-i-1;k++)
    {
        if(*p>*(p+1))
        {
            t=*p;
            *p=*(p+1);
            *(p+1)=t;
        }
        p++;
    }   
    }
    p=b;
    for(i=0;i<j;i++)
    { cout<<*p<<endl;
      p++;
    }
}
#5
aiyinsitan2010-05-24 21:24
非常感谢
粗心了
1