不行啊
追答数据溢出吗?把integer改正longint
其他应该是对的,试过很多次了,
附图:
program maopao;
const n=5; {n设为5,可以修改}
var a:array[1..n] oflongint;
i,j:integer;
temp:longint;
begin
writeln('please input array');
for i:=1 to n do read(a[i]); {读入数组a}
writeln('array a:');
for i:=1 to n do write(a[i],' ');writeln; {输出原始数据}
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]>a[j] then
begin
temp:=a[i];a[i]:=a[j];a[j]:=temp; {交换a[i],a[j])
end;
writeln('Result');
for i:=1 to n do write(a[i],' ');writeln; {输出}
end.
题目描述
给出n个数,你要将这n(n<=100000)个数从小到大排序输出
输入
第一行一个整数n 接下来n行,每行一个整数
输出
将这n个整数从小到大排序输出,每个数占一行
样例输入
5
5
4
3
2
1
样例输出
1
2
3
4
5
现在行了吧
程序如下:
program maopao;
var a:array[1..100000] of longint;
i,j:integer;
temp:longint;
n:1..100000;
begin
readln(n);
for i:=1 to n do readln(a[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]>a[j] then
begin
temp:=a[i];a[i]:=a[j];a[j]:=temp;
end;
writeln('Result');
for i:=1 to n do writeln(a[i],' ');writeln;
end.
附图:
不行
追答n不需要你输入!你输入任意个数,数与数之间用空格隔开,全输完了按回车,答案就出来了。
我的电脑试没有问题。
题目描述
给出n个数,你要将这n(n<=100000)个数从小到大排序输出
输入
第一行一个整数n 接下来n行,每行一个整数
输出
将这n个整数从小到大排序输出,每个数占一行
样例输入 Copy
5
5
4
3
2
1
样例输出 Copy
1
2
3
4
5
如果你连题目都描述不清楚,就不要随便说别人的程序“不行”。
用下面的就行了。
program Project1;
var
na: array[1..100000] of Integer;
n, i, j, k: Longint;
begin
Readln(n);
for i := 1 to n do
Readln(na[i]);
for i := 1 to n - 1 do
for j := 1 to n - i do
if na[j] > na[j + 1] then
begin
k := na[j];
na[j] := na[j + 1];
na[j + 1] := k;
end;
for i := 1 to n do
Write(na[i], ' ');
Readln;
end.
ferr pascal求 下面
由于每个糖果的价值≤1000000,更好的选择是桶排序(就是计数排序),开一个a:array[1..1000000]的数组,然后直接模拟。
...知道怎么优化我的程序才能不超时?数据范围的N<=100000.
思路:假设猴子的期望值Ki之和为s,则第i只猴子的桃子数为int(m\/s*Ki+0.5)。这种分法是最优的。
求100000以内的纯粹素数 用pascal
求纯粹素数的代码如下:var i,j,n,t,code:longint; s:string; prime:array[2..1000000]of boolean;begin fillchar(prime,sizeof(prime),true); readln(n); for i:=2 to trunc(sqrt(n)) do if prime[i] then begin for j:=2 to n div i do prime[i*j]:=false;...
编程,图论。给定一个无向图,N个点,N<=50000;M条边,M<=100000.
简单图的最长路径是个NP问题。如果是无环图的话就有多项式算法。
PASCAL 求众数
问下,你的n是数组量还是单元格中值?array 【0..100array [0..100000】中100000 太大了
PASCAL求一个数的个十百千万位上的数
给你一个求一个数左数第k位的函数,如果没有则返回-1。写个简单的递归程序。function get(n,k:longint):longint;begin if ((trunc(ln(n)\/ln(10))+1)<k)or(k<1) then exit(-1);if k=1 then exit(n mod 10);exit(n div 10,k-1);end;你说的“百位=这个数 mod 10;十位=...
O(n) 的排序 pascal
有的一个比较猥琐的排序法,比选择排序和快速排序要快一些,但必须是已知数据范围的情况下才可以行的排序,代码如下:var n,i,j,num:longint;a:array[1..100000] of longint;begin readln(n);{输入数据的总个数} fillchar(a,sizeof(a),0);{清空计数数组} for i:=1 to n do begin rea...
pascal 快速排序
直到I等于J时退出循环,此时X的位置为I,将X放在I位置,也就是说X比表中前面数据大而比表中后面数据小,这此再用相同方法递归排序前面数据和后面数据。参考子程序:procedure quicksort(var a:arr;s,t:integer);var I,j:integer;begin i:=s;j:=t;x:=a[s];{赋初值,确定当前表的上限s和...
Pascal排序
dec(a[i]);\/\/每输出一个,就-1 end;end.var a:array[0..100000] of longint;\/\/快速排序 n,i:longint;procedure sort(i1,j1:longint);var i,j,n,s:longint;begin i:=i1;j:=j1;n:=a[(i+j) div 2];\/\/找中间作比较的数(称为中介)repeat while a[i]<n do inc(i);\/...
关于Pascal中的排序
不用比如说了,一般排序是不会有这么大的数据的。一般用的是快排,但实际上堆排更快一些。Program heapsort;var a:array[1..100000] of longint;n,i:longint;procedure swap(var a,b:longint);var t:longint;begin t:=a;a:=b;b:=t;end;procedure heap(i,n:longint);var j,x:long...