pascal一維陣列如何鍵盤讀入上下標

2022-11-22 23:27:44 字數 6202 閱讀 1209

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 更長一些

PASCAL 用一維陣列從鍵盤輸入數,要求按輸入時相反的順序輸出這數

你這樣只輸出了一個數啊!你沒加 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...

定義長度為10的一維整形陣列,並從鍵盤給每元素賦值,並輸出到螢幕,每行顯示數字

include stdafx.h include stdlib.h main for i 0 i元素 free a include main printf n 1020 3040 5060 你是說用什麼語言寫?定義一個有10個元素的一維整型陣列,從鍵盤輸入給陣列的每個元素賦值,並把每個元素進行輸出。...