| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
为什么两个程序Pascal的能过,C++的就过不了?program No1007;
var
num,ord1:array[1..100] of integer;
st:array[1..100] of string;
n,m:integer;
procedure init;
var
i:integer;
begin
readln(m,n);
for i:=1 to n do
readln(st[i]);
end;
procedure cal;
var
i,j,k,tot:integer;
begin
fillchar(num,sizeof(num),0);
for i:=1 to n do
begin
tot:=0;
for j:=1 to m-1 do
for k:=j+1 to m do
if st[i][j]>st[i][k] then tot:=tot+1;
num[i]:=tot;
end;
end;
procedure sort;
var
i,j,p:integer;
begin
for i:=1 to n do
ord1[i]:=i;
for i:=1 to n-1 do
for j:=i+1 to n do
if num[i]>num[j] then
begin
p:=num[i];num[i]:=num[j];num[j]:=p;
p:=ord1[i];ord1[i]:=ord1[j];ord1[j]:=p;
end;
end;
procedure print;
var
i:integer;
begin
for i:=1 to n do
writeln(st[ord1[i]]);
end;
begin
init;
cal;
sort;
print;
end.
------------------------------------------------------------------------
//1007.cpp
#include <iostream>
using namespace std;
char st1[100][50];
int num[100];
int ord[100];
int n,m;
void cal()
{
int i,j,k,tot(0);
for (i=1;i<=n;i++)
{
tot=0;
for (j=1;j<=m-1;j++)
for (k=j+1;k<=m;k++)
if (st1[i][j]>st1[i][k]) tot++;
num[i]=tot;
}
}
void sort()
{
int i,j,p;
for (i=1;i<=n;i++)
ord[i]=i;
for (i=1;i<=n-1;i++)
for (j=i+1;j<=n;j++)
if (num[i]>num[j])
{
p=num[i];num[i]=num[j];num[j]=p;
p=ord[i];ord[i]=ord[j];ord[j]=p;
}
}
void print()
{
int i,j;
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
cout<<st1[ord[i]][j];
cout<<endl;
}
}
int main()
{
void cal();
void sort();
void print();
int i,j;
cin>>m>>n;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
cin>>st1[i][j];
cal();
sort();
print();
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator