帮我看看下面这道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实现程序不在任务栏显示