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
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...