【C++】将若干个整数按输入顺序的逆序排列,要求应用带指针参数的函数实现
例如,输入35403-44输出4-430543很多人搞的都是C,而我要的是C++,带"stdio.h”我看都不看。...
例如,输入
3 54 0 3 -4 4
输出
4 -4 3 0 54 3
很多人搞的都是C,而我要的是C++,带"stdio.h”我看都不看。 展开
3 54 0 3 -4 4
输出
4 -4 3 0 54 3
很多人搞的都是C,而我要的是C++,带"stdio.h”我看都不看。 展开
5个回答
展开全部
楼上的懂不懂楼主的意思,人家问的是C++,不是C,而且明显是不提供数组大小的 ,不过我这个有一点不好就是要用0结束输入,所以你的题目还没完全办到,先给你个半成品,过会儿我再改进一下
不过,向量有提供交换函数,用指针有麻烦又不安全
#include<iostream>
#include<vector>
using namespace std;
void main()
{
vector<int> va;
int *pt;
cout<<"输入"<<endl;
for(int a;cin>>a,a!=0;) //这里是设置循环结束条件,输入0结束
va.push_back(a);//扩容
pt=&va[0];
void oswap(int *p,int n);
oswap(pt,va.size());
for(int i=0;i<va.size();i++)//打印
cout<<*(pt+i)<<" ";
}
void oswap(int *p,int n)
{
int t;
for(int i=0;i<n/2;i++)//交换,注意这里的循环结束条件
{
t=*(p+i);
*(p+i)=*(p+n-1-i);
*(p+n-1-i)=t;
}
}
不过,向量有提供交换函数,用指针有麻烦又不安全
#include<iostream>
#include<vector>
using namespace std;
void main()
{
vector<int> va;
int *pt;
cout<<"输入"<<endl;
for(int a;cin>>a,a!=0;) //这里是设置循环结束条件,输入0结束
va.push_back(a);//扩容
pt=&va[0];
void oswap(int *p,int n);
oswap(pt,va.size());
for(int i=0;i<va.size();i++)//打印
cout<<*(pt+i)<<" ";
}
void oswap(int *p,int n)
{
int t;
for(int i=0;i<n/2;i++)//交换,注意这里的循环结束条件
{
t=*(p+i);
*(p+i)=*(p+n-1-i);
*(p+n-1-i)=t;
}
}
展开全部
#include<stdio.h>
main(){
int i=0,j=0,n;
int Array[100];
int *p=Array;
void DisplayData(int *,int );
printf("输入数组的大小:");
scanf("%d",&n);
printf("输入数据:");
for (i=0;i<n;i++)
scanf("%d",&Array[i]);
DisplayData(p,n);
return 1;
}
void DisplayData(int *p,int n){
for(int i=n-1;i>=0;i--)
printf("%5d",*(p+i));
printf("\n");
}
main(){
int i=0,j=0,n;
int Array[100];
int *p=Array;
void DisplayData(int *,int );
printf("输入数组的大小:");
scanf("%d",&n);
printf("输入数据:");
for (i=0;i<n;i++)
scanf("%d",&Array[i]);
DisplayData(p,n);
return 1;
}
void DisplayData(int *p,int n){
for(int i=n-1;i>=0;i--)
printf("%5d",*(p+i));
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实行逆序排列后再输出吧?
#include"stdio.h"
void swap(int *p,int n)
{
int i,temp,co=n;
for(i=0;i<co/2;n--,i++)
{
temp=*(p+n-1);
*(p+n-1)=*(p+i);
*(p+i)=temp;
}
for (i=0;i<co;p++,i++)
{
printf("%d\t",*p);
}
}
void main()
{
int a[7]={0},i;
for(i=0;i<7;i++){
scanf("%d",&a[i]);
}
swap(a,7);
}
#include"stdio.h"
void swap(int *p,int n)
{
int i,temp,co=n;
for(i=0;i<co/2;n--,i++)
{
temp=*(p+n-1);
*(p+n-1)=*(p+i);
*(p+i)=temp;
}
for (i=0;i<co;p++,i++)
{
printf("%d\t",*p);
}
}
void main()
{
int a[7]={0},i;
for(i=0;i<7;i++){
scanf("%d",&a[i]);
}
swap(a,7);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个参数是首地址,第二个是长度
void fun(int *n,int len)
{
for(int i=0;i<len/2;i++)
{
int tmp=*(n+i);
*(n+i)=*(n+len-1-i);
*(n+len-1-i)=tmp;
}
}
void fun(int *n,int len)
{
for(int i=0;i<len/2;i++)
{
int tmp=*(n+i);
*(n+i)=*(n+len-1-i);
*(n+len-1-i)=tmp;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include"stdio.h"
void swap(int *p,int n)
{
int i;
for(i=0;i<n;i++)
printf("%d ",*(p+n-i-1));
}
void main()
{
int a[7]={0},i;
for(i=0;i<7;i++)
scanf("%d",&a[i]);
swap(a,7);
}
void swap(int *p,int n)
{
int i;
for(i=0;i<n;i++)
printf("%d ",*(p+n-i-1));
}
void main()
{
int a[7]={0},i;
for(i=0;i<7;i++)
scanf("%d",&a[i]);
swap(a,7);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询