1樓:匿名使用者
這個是動態陣列。但是動態陣列只能從下標0開始,因此為了安全起見,不應該直接引用陣列的下標或上標,而是用過用low()和high(),**如下:
varn: array of longint; // <-- 定義(宣告)動態陣列
i:longint;
s:real;
len : integer; // <-- 陣列的長度
begin
while not eof do begin
readln(len); // <-- 讀入陣列的長度
setlength(n, len); // <-- 設定動態陣列長度
for i:= low(n) to high(n) do // <-- 用low()、high()訪問陣列
readln(n[i]);
s:=0;
for i:=low(n) to high(n) do // <-- 用low()、high()訪問陣列
s:=s+n[i]/5;
for i:=low(n) to high(n) do // <-- 用low()、high()訪問陣列
if n[i]
pascal讀入陣列時開頭有0
2樓:聽不清啊
for k:=0 to n-1 do read(a[k]);
這樣就可以避免前面的情況。但是要記得n個資料是存放在a[0]..a[n-1]中的。
pascal用一維陣列做:使用者輸出n個數,求最大數
3樓:匿名使用者
var a:array[1..maxint] of integer;
n,i,m,t,max:integer;
begin
readln(n);
max:=-maxint-1;
for i:=1 to n do read(a[i]);
for i:=1 to n do
begin
n:=a[i];
if n>max then max:=n;
end;
writeln(max);
end.
4樓:匿名使用者
var a:array[1..1000]of longint;
b:array[1..1000]of longint;
n,max,i,m:longint;
begin
readln(n);
for i:=1 to n do read(a[i]);
max:=-maxlongint;
for i:=1 to n do
if max
begin m:=1; b[m]:=i; endelse if max=a[i] thenbegin inc(m); b[m]:=i; end; for i:=1 to m do write(b[i],' '); end. 5樓:難道是神嗎 這個可以用排序法做,排序又分氣泡排序,選擇排序,快速排序等演算法。 其中選擇排序速度慢,沒冒泡好;氣泡排序速度快,穩定; 快速排序速度最快,但不穩定。剛學pascal最好用氣泡排序。 以下是氣泡排序**: var i,j,t,n:longint; a:array[1..100]of longint; begin read(n); for i:=1to n do read(a[i]); for i:=1 to n-1 do for j=i+1 to n do if a[i]
a[i]:=a[j]; a[j]:=t; end; writeln(a); end. 6樓:寂寞的黯淡的風 max:=-maxlongint; for i:=1 to n do begin readln(a); if max
end; 這樣練陣列都不用 7樓:匿名使用者 可以參考下排序演算法 冒泡 折半 快速 這個不難,依次比較,每次都記下較大的,比較到最後就得到最大的數了 用c語言程式設計,從鍵盤上輸入10個整數存放到一維陣列中,輸出其中最大的數及其對應的陣列下標值 8樓:陳開武 解題思路:先鍵盤輸入10個整數,假設陣列的第1個是最大數max,同時設定最大值下標為0,接著for迴圈依次判斷其是否大於最大數,如果大於替換掉最大值,並更新最大值下標,最後輸出最大數和陣列下標。 參考**: #include int main() //假設陣列的第1個是最大數max,同時設定最大值下標為0 max=a[0]; maxi=0; //for迴圈依次判斷其是否大於最大數,如果大於替換掉最大值,並更新最大值下標 for(i=1;i<10;i++) }//輸出最大數和陣列下標 printf("最大數為:%d,陣列下標為:%d",max,maxi); return 0; }程式執行結果如下: 參考資料: for迴圈遍歷求陣列中的最大值是最常用的方法,但還有一種方法就是迴圈連結串列的遍歷; 首先需要建立資料域和指標域,回到mian函式中,建立三個節點,然後用頭節點申請空間,再輸入資料到頭節點,最後用while語句,進行遍歷連結串列。如下是迴圈連結串列遍歷的例項: void show(list *p) //遍歷,迴圈連結串列的遍歷最好用do while語句 ,因為頭節點就有值 while(temp!=p); printf("\n");} 9樓:非常可愛 #include"stdio.h" //從鍵盤輸入10個數存入一維陣列,求這10個數中的最大值和最小值並輸出 intmain() max=min=num[0]; for(i=1;i<10;i++) printf("最大為:%f\n最小為:%f\n",max,min); return0; }擴充套件資料從鍵盤向一維陣列輸入10個實數,並且計算最大值,最小值和平均值#include #include intmain() for(i=0;i<10;i++) for(i=0;i<10;i++) max=min=array[0]; for(i=0;i<10;i++) if(array[i] }printf(「最大值為=%f\n」,max); printf(「最小值為=%f\n」,min); }system(「pause」); return0;} 10樓:匿名使用者 思路:先鍵盤輸入一個數賦值給陣列的第一個數,並且賦值給最大數max,同時設定最大值下標為0,接著for迴圈依次賦值給陣列相應位置並判斷其是否大於最大數,如果大於替換掉最大值,並更新最大值下標,最後輸出最大數和最大數下標。 參考**: #include "stdio.h" int main() } printf("最大數為:%d,最大數下標為:%d",max,maxi); return 0;}/* 執行結果:(例如求5的階乘) 1 2 5 3 4 6 7 9 8 0 最大數為:9,最大數下標為:7*/ 11樓:匿名使用者 #include int main() ;for(i=0;i<10;i++) }printf("輸入的最大的數是:%d,對應下標是:%d\n",max,index); return 0;} 12樓:爭議什麼 #include void main() }printf("最大的數為:%d,所在的下標為:%d\n",max,k);} 從鍵盤輸入10個數存入一維陣列中,輸出下標為奇數的元素。 13樓:我是果瘋 #include int main() for(i=0;i<10;i++) return 0; }擴充套件資料抄:特點1,數bai組是相du同資料型別zhi的元素的集合。 2,陣列中的各dao元素的儲存是有先後順序的,它們在記憶體中按照這個先後順序連續存放在一起。 3,陣列元素用整個陣列的名字和它自己在陣列中的順序位置來表示。例如,a[0]表示名字為a的陣列中的第一個元素,a[1]代表陣列a的第二個元素,以此類推。
14樓:小傻 #include void main() for(i=1; i<11; ) for(i=0; i<11; ) printf("\n");} pascal如何定義陣列 15樓:業餘收藏人 陣列是程式中最常用的結構資料型別,用來描述由固定數目的同一型別的元素組成的資料結構。陣列的每個元素和下標相關聯,根據下標指示陣列的元素。陣列的儲存方式為按行儲存,在編譯階段,計算機根據陣列的型別說明,確定其儲存空間的大小。 陣列可以是任何順序型別。 陣列的定義形式: array [《下標型別1>,……《下標型別n>] of 《元素型別》 其中n稱為陣列的維數,每維的下標型別必須是一個順序型別,通常為子界型別或列舉型別,其作用是指定陣列下標的編制方式和下標取值範圍。 例如:type color=(red,yellow,blue); sample1=array [1..10]of integer;{有10個元素的一維陣列} sample2=arrayp[1..5,1..5]of real; 2.陣列的操作 當陣列的元素型別為簡單型別時,其下標變數和簡單型別變數一樣使用。例如: a[50]:=50; a[20]:=a[5]; 一個陣列,下標的起始值和終止值是在型別定義中給定的,不能在程式執行中再通過其他途徑來改變,所以陣列元素的個數在程式執行期間是固定不變的。陣列變數作為整體僅允許同型別陣列之間的賦值運算。 例如:var x,y:array[1..10]of integer; x::=y 16樓:匿名使用者 這個有一點點小問題'n=10'後面好像應該加分號吧。 其中n必須是常量且不能後來確定(但你可以把n的值定大一點), string是字串。 17樓:匿名使用者 var 陣列名:array[下標型別] of 陣列元素型別 ; const a: array[1..8] of integer =(24,110,60,16,26,32,32,42); {給a陣列賦初值} 18樓:匿名使用者 首先,pascal中定義陣列有多種方法,在這裡我就介紹2中。 例,定義陣列名為:a;型別為:real;共計100個元素方法一: type arr=array[1..100]of real; vara:arr; 方法二: vara:array[1..100] of real; 方法一適用於需要作過程或者函式的引數時實用,方法二寫法簡單,一般你不用作過程或者函式的引數的話,建議使用方法二。 另附:string 英文中的意思是:串,線在pascal中是 字串的型別(pascal保留字),最多容納255個字元元素 可以看做是 type string=array[1..255]of char;(字元)還有一種是ansistring 更長一些 你這樣只輸出了一個數啊!你沒加 begin end 按你的思路,應該這樣做 var a array 1.10 of integer b array 1.10 of integer i integer begin for i 1 to 10 do read a i for i 1 to 10 do b... 直接a 0 0 a 0 8 賦給b 0 b 8 就可以了,對於二維陣列可以直接使用a 0 8 訪問最後一個元素的。include int main void int a 2 2 b 4 i for i 0 i 4 i b i a i 2 i 2 或 for int length 0,lengthfo... include stdafx.h include stdlib.h main for i 0 i元素 free a include main printf n 1020 3040 5060 你是說用什麼語言寫?定義一個有10個元素的一維整型陣列,從鍵盤輸入給陣列的每個元素賦值,並把每個元素進行輸出。...PASCAL 用一維陣列從鍵盤輸入數,要求按輸入時相反的順序輸出這數
如何把二維陣列中的資料存入一維陣列
定義長度為10的一維整形陣列,並從鍵盤給每元素賦值,並輸出到螢幕,每行顯示數字