当前位置:编程学习 > C/C++ >>

帮我看看下面这道c++题目哪里出现了问题

题目:定义一个函数invert()将数组A中的n个整数按相反顺序存放。(注:这个没语法错误,但是连接时出错了,麻烦帮我修改一下)#include<iostream>using namespace std;int main(){int  n,*p;int invert(int A[],int n);cout<<"请输入整数个数n"<<endl;cin>>n;cout<<"请输入这n个整数的值"<<endl;p=new int[n];
for(int i=0;i<n;i++)cin>>p[i];
invert(p, n);return 0;}
int invert(int *A,int n){int temp,i;for(i=0;i<n/2;i++){    temp=*(A+i);*(A+i)=*(A+(n-1-i));    *(A+(n-1-i))=temp;}for(i=0;i<n;i++)cout<<*(A+i)<<" ";return 0;}
追问:Invert函数里面二分判断出错了?我是个初学者,请再说明一下是什么回事啦。另外,我在vc++6.0运行你的程序时出现了这个问题喔
答案:问题出在Invert函数里面二分判断出错了

我给楼主改了一下, VC++ 2010下编译运行无误

先附上运行截图

 

程序:

#include <iostream>
using namespace std;

int main(void){
 int n, *p;
 void Invert(int A[], int n);
 cout << "请输入整数个数n: ";
 cin >> n;
 p = new int[n];
 cout << "请输入这" << n << "个整数的值: " << endl;
 for (int i = 0; i != n; ++i)
  cin >> p[i];
 Invert(p, n);
 delete [] p;
 system("PAUSE>NUL");
 return 0;
}

void Invert(int A[], int n){
 for (int i = 0; i != n / 2; ++i){
  int temp = *(A + i);
  *(A + i) = *(A + n - 1 - i);
  *(A + n - 1 - i) = temp;
 }
 for (int i = 0; i != n; ++i)
  cout << *(A + i) << " ";
}

你道题没大碍,只系果度写错,定义INVERT函数时形参写成数组
忽略我

上一个:国外比较经典的 数据结构教材(C/C++描述)
下一个:c ,c++,vc实现程序不在任务栏显示

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,