2 用VB程式程式設計 從鍵盤上輸入整數,並放入一維陣列中,然後將其前元素與後元素對換

時間 2021-07-21 03:32:34

1樓:司寇忻

private sub command1_click()

dim tmp as string, tmp1 as string, a() as string

me.cls

tmp = text1.text

if not isnumeric(tmp) then goto outerr

a = split(tmp, ",")

if ubound(a) <> 9 then msgbox "請輸入十個整數!", vbinformation, "提示": exit sub

for i = 0 to 4

tmp1 = a(i)

a(i) = a(9 - i)

a(9 - i) = tmp1

next i

for i = 0 to 9

if int(val(a(i))) = val(a(i)) then

me.print a(i) & ",";

else

me.print a(i) & "(不是整數)";

end if

next i

exit sub

outerr:

a = split(tmp, ",")

for i = 0 to ubound(a)

if not isnumeric(a(i)) then me.print vbcrlf & a(i) & "不是整數"

next i

end sub

private sub text1_change()

dim a() as string

a = split(text1.text, ",")

if a(ubound(a)) <> "" then label1.caption = "共輸入:" & ubound(a) + 1 & "個數"

end sub

2樓:櫻雪殤

option base 1

private sub form_click()dim a%(10)

for i = 1 to 10

a(i) = inputbox("輸入第" & i & "個元素值:")

print a(i);

next i

print

for i = 1 to 5

temp = a(i): a(i) = a(11 - i): a(11 - i) = temp

next i

for i = 1 to 10

print a(i);

next i

end sub

(1)定義一個整型指標變數p,使它指向一個5個元素的一維陣列. (2)使用指標移動的方式,輸入5個整型陣列元素.

3樓:

源**如下:

#include

#include

int main(){

int a[5];

int *p=a;                                   //定義一個整型指標變數p,使它指向一個5個元素的一維陣列.

int i;

printf("please input:");

for(i=0;i<5;i++)

scanf("%d",p+i);                        //使用指標移動的方式,輸入5個整型陣列元素.

int *q=(int*)malloc(sizeof(int)*5);   //malloc函式動態分配5個整型數的地址空間。

printf("please input:");

for(i=0;i<5;i++)

scanf("%d",q+i);   //使用陣列下標的方式輸入5個整型元素。

for(i=0;i<5;i++)

if(p[i]>q[i]){

int t=p[i];

p[i]=q[i];

q[i]=t;

for(i=0;i<5;i++) //使用指標p和q分別訪問兩組資料

printf("%d",p[i]);

putchar('\n');

for(i=0;i<5;i++)

printf("%d",q[i]);

putchar('\n');

printf("p=%x\n",p); //分別輸出交換後的兩組數。

printf("a=%x\n",a);

printf("q=%x\n",q);

free(q);

q=null;//按十六進位制方式輸出p、a和q的地址。

return 0;

執行結果如下:

擴充套件資料:

指標的初始化、動態分配記憶體的方法

指標的初始化

對指標進行初始化或賦值只能使用以下四種型別的值  :

1. 0 值常量表示式,例如,在編譯時可獲得 0 值的整型 const物件或字面值常量 0。

2. 型別匹配的物件的地址。

3. 另一物件末的下一地址。

4. 同型別的另一個有效指標。

把 int 型變數賦給指標是非法的,儘管此 int 型變數的值可能為 0。但允

許把數值 0 或在編譯時可獲得 0 值的 const 量賦給指標:

int ival;

int zero = 0;

const int c_ival = 0;

int *pi = ival; // error: pi initialized from int value of ival

pi = zero;// error: pi assigned int value of zero

pi = c_ival;// ok: c_ival is a const with compile-time value of 0

pi = 0;// ok: directly initialize to literal constant 0

除了使用數值 0 或在編譯時值為 0 的 const 量外,還可以使用 c++ 語言從 c 語言中繼承下來的前處理器變數 null,該變數在 cstdlib標頭檔案中定義,其值為 0。

如果在**中使用了這個前處理器變數,則編譯時會自動被數值 0 替換。因此,把指標初始化為 null 等效於初始化為 0 值 [3]  :

// cstdlib #defines null to 0

int *pi = null; // ok: equivalent to int *pi = 0;

動態分配記憶體的方法

new可用來生成動態無名變數

(1)new可用來生成動態無名變數

如 int *p=new int;

int *p=new int [10]; //動態陣列的大小可以是變數或常量;而一般直接宣告陣列時,陣列大小必須是常量

又如:int *p1;

double *p2;

p1=new int⑿;

p2=new double [100];

l 分別表示動態分配了用於存放整型資料的記憶體空間,將初值12寫入該記憶體空間,並將首地址值返回指標p1;

l 動態分配了具有100個雙精度實型陣列元素的陣列,同時將各儲存區的首地址指標返回給指標變數p2;

對於生成二維及更高維的陣列,應使用多維指標。

以二維指標為例

int **p=new int* [row]; //row是二維陣列的行,p是指向一個指標陣列的指標

for(int i=0; ip[i]=new int [col]; //col是二維陣列的列,p是指向一個int陣列的指標

刪除這個二維陣列

for(int i = 0; i < row;i++)

delete p[i]; //先刪除二維陣列的列

delete p;

⑵使用完動態無名變數後應該及時釋放,要用到 delete 運算子

delete p; //釋放單個變數

delete [ ] p;//釋放陣列變數(不論陣列是幾維)

相比於一般的變數宣告,使用new和delete 運算子可方便的使用變數。

4樓:匿名使用者

你好,完成以上功能的**如下

根據你要求的malloc我覺得應該是用c語言來做吧!

如果我理解錯了,請指正!

#include

#include

int main(){

int a[5];

int *p=a; //完成(1)

int i;

printf("please input:");

for(i=0;i<5;i++)

scanf("%d",p+i);   //完成(2)int *q=(int*)malloc(sizeof(int)*5);   //動態分配記憶體空間   //完成(3)

printf("please input:");

for(i=0;i<5;i++)

scanf("%d",q+i);   //完成(4)for(i=0;i<5;i++)      //完成(5)if(p[i]>q[i]){

int t=p[i];

p[i]=q[i];

q[i]=t;

for(i=0;i<5;i++) //完成(6)printf("%d",p[i]);

putchar('\n');

for(i=0;i<5;i++)

printf("%d",q[i]);

putchar('\n');

printf("p=%x\n",p); //完成(6)printf("a=%x\n",a);

printf("q=%x\n",q);

free(q);

q=null;//釋放動態分配的記憶體

return 0;

執行結果:

5樓:勵若

(1)int (*p)[5];

(2) #include

int a[5] = ;

int* p = a;

for(int i=0; i<5; ++i)(3)int* q = (int*)(malloc(5*sizeof(int));

(4)#include

int a[5] = ;

for(int i=0; i<5; ++i)(5)#include

int a[5] = ;

int b[5] = ;

int* p = a;

int* q = b;

for(int i=0;i<5;++i)

}(6)

for(int i=0;i<5;++i)

for(int i=0;i<5;++i)

(7)std::cout << p << q << a;

用C 程式設計 從鍵盤上輸入若干學生的成績,統計並輸出最高成績和最低成績,當輸入負數時結束輸入

問明 include using namespace std int main double a 100 double max 0,min 100,t int i for i 0 i 100 i cin a i if a i 0 break else if a i max max a i if a ...

用c語言編寫一程式,接收從鍵盤上輸入的整數i,將陣列迴圈左移i位

思路 可以定義兩個陣列a和b,以及整數i,陣列a用來存放原始資料,陣列b用來存放移動過後的資料,依次把a的第i位到結束位置的數存放到b中,再把a的0位置到i位置數存放到b中,最終的b就是陣列迴圈左移i位的最終結果。參考 include include int main b 6 i,j i 2 for...

程式設計從鍵盤上輸入整數,求去掉最大值和最小值以後那些元素的平均值。我是大一的,求簡單易懂的答案

最後乙個for迴圈體中,來的 n 而且也沒有初始化,不妨把 n相關的語句去掉,直接 count 記錄個數就行了。c語言程式設計 將從鍵盤輸入的20個整數存入一維陣列中,計算所有元素的和 平均值及最大值並輸出 include int main void int a 20 int i 0 for i 2...