C语言编程,随机产生50个0到2000的正整数放于数组中,并按照从大到小的顺序排列,将结果输出到test.txt

java写的也可被采纳

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
int a[50];
int i;
int j;
int tmp;
FILE *fp;
srand(time(NULL));
for(i=0;i<50;i++)
{
a[i] = rand()%2001;
}
for(i=0;i<49;i++)
{
for(j=i+1;j<50;j++)
{
if(a[i]<a[j])
{
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
fp = fopen("test.txt","w");
for(i=0;i<50;i++)
{
fprintf(fp,"%d\n",a[i]);
}
fclose(fp);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-27
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <queue>
using namespace std;

#ifdef VERIFY
#define out cout
#else
ofstream out("1.out");
#endif

int main()
{
int n;
priority_queue<int> q;
srand(2000);
for (int i = 1; i<=50; i++)
{
n = rand()%2001;
q.push(n);
}
while (!q.empty())
{
n = q.top();
q.pop();
out<<n<<endl;
}
return 0;
}
结果:
1994
1973
1932
1882
1817
1788
1759
1748
1724
1714
1628
1547
1486
1357
1344
1322
1269
1174
1168
1167
1133
1052
1029
951
937
919
907
853
802
799
726
720
684
610
566
515
485
466
445
434
382
351
337
246
220
201
104
102
79
6
相似回答