我剛剛完成初學者級別的編程,正在嘗試從奧林匹克的問題。其相對容易,但我從網上法官的10個輸入只得到一個正確的答案。 這裏是鏈接:http://opc.iarcs.org.in/index.php/problems/SORTROWS代碼未被在線評審接受
順便說一句我正在使用外部文件輸入,使輸入數據更容易。 任何幫助或提示將會有所瞭解。 任何人都可以提出一種快速測試隨機數據的方法嗎?我無法在比賽中再製作一個節目。 在線法官採用G ++編譯器
現在這裏是我的代碼:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream ifs("test.txt");
struct ac
{
int arr[51];
int size;
}ar[1000]; //represents each line
int i,j,n,m,in,pos,k;
ac small;
ifs>>n;
for(i=0;i<n;i++)
{
for(j=0;;j++)
{
ifs>>in;
ar[i].arr[j]=in;
if(in==-1)
{
ar[i].size=j+1;
break;
}
}
}
for(i=0;i<n;i++) //using selection sort
{
pos=i;
small=ar[i];
for(j=i+1;j<n;j++)
{
for(k=0;k<ar[j].size&&k<ar[i].size;k++)
{
if(ar[i].arr[k]>ar[j].arr[k])
{
small=ar[j];
pos=j;
}
else if(ar[i].arr[k]==ar[j].arr[k]) //to continue checking
continue;
break;
}
}
ar[pos]=ar[i];
ar[i]=small;
for(m=0;m<ar[i].size-1;m++)
cout<<ar[i].arr[m]<<' ';
cout<<'\n';
}
return 0;
}
for one,for(m = 0; m
因爲最後一個元素不應該被打印。 – Sumedh
@Sumedh如果你正在談論最後的-1條目,那麼我認爲更好的方法是不要在數組中輸入該條目並拒絕它。 –