請問20筆的意思是不是一定要讀20筆?
求救,我讀20筆及 讀 cin>>n>>m至檔尾皆 RE?
#include <iostream>
#include <algorithm>
using namespace std;
int a[10005];
int m;
bool cmp(int a, int b)
{
int ad=a%2, bd=b%2; //是否奇數
int am=a%m , bm=b%m;
if( am != bm ) return ( am < bm ); //餘數小的在前
if( ad != bd ) return ( ad > bd ); //餘數同則 奇數在前
if( ad ) return ( a>b ); // 奇數大的在前
return ( a<b ); // 偶數小的在前
}
int main()
{
int n,i,zero;
int t=20;
while( t-- )
{
cin >> n >> m;
for(i=0; i<n; ++i) cin >> a[i];
cin >> zero >> zero;
sort(a,a+n, cmp);
cout << n <<" " << m << endl;
for(i=0; i<n; ++i) cout << a[i] << endl;
cout << "0 0" << endl;
}
我的程式,單筆測試可過,但改成多筆就RE
我找到問題了,{題目中有說每組輸出 n+1行,是我自己沒看清楚!}
每題測資以 0 0結束,但每筆測資有多組 n m
所以 將while(t--)改為
while( cin >>n >>m)
{
if(n==0 && m==0) break;
…
並將 cin >> zero >> zero 該行刪掉
}
cout << "0 0" << endl;