题目
现在给你一个整数n,和n−1个互不相同的整数a1,a2,…,an−1,这些数字是1..n排列的一部分,但缺失了一个数。现在问你缺失的数是多少。
样例输入
5
3 5 4 1
样例输出
2
#include
using namespace std;
int main(){
int a[1001],n,big=-1,small=0;
cin>>n;
for(int i=1;i<=n-1;i++){
cin>>a[i];
if(a[i]1]){
a[i-1]=a[i];
a[i]=a[i-1];
}
}
for(int i=1;i<=n;i++){
small=a[i];
if(a[i]!=small){
cout<<small;
break;
}
small++;
}
}
为什么我的输出不出来呢?
你那从小到大排序有问题;
另外两数交换,需要第三个数作为中间变量,再进行交换;
先看效果图:
#include<iostream>
using namespace std;
int main()
{
int n,t,i,j;
cin>>n;
int a[n-1];
for(i=0;i<n-1;i++)
{
cin>>a[i];
}
for(i = 0; i < n - 2; i++)
{
for(j = 0; j < n - i - 2; j++)
{
if (a[j] > a[j+1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
int m = 0;
for(i=1;i<=n;i++){
if(a[m++]!=i){
cout<<i<<" ";
m--;
}
}
return 0;
}
你好,请问是否是因为没有加 return 0;所导致的