『壹』 c語言 怎樣才能根據輸入的變數n 來動態定義一個數組
用malloc申請內存,得到的一片連續的空間,然後在通過強制轉換,把連續的空間劃分成你想要的類型,比如是int整型時,通過強制轉換,將每四位元組劃成一個單元。如果是C++,用new直接分配就可以了,會自動轉化成相應的類型的
記得採納啊
『貳』 C語言中我要定義一個數組,可是這個數組的元素的個數要根據我輸入的元素的個數來確定 該怎麼做。
由於空格和回車都用來分割數字了,所以以任何非數字字元作結束。供參考……
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
int*myarray(int*p,int*la){
unsignedN=sizeof(int)==4?0xFFFFFF:0xFFFF,i;
intlc,*q=(int*)malloc((lc=sizeof(int))*N);
if(!q){
printf("... ");
returnNULL;
}
for(i=0;;i++)
if(scanf("%d",q+i)!=1)
break;
if((p=(int*)malloc(lc*i))==NULL){
printf("... ");
returnNULL;
}
memcpy(p,q,lc*i);
free(q);
*la=i;
returnp;
}
intmain(void){
int*p=NULL,n,i;
printf("(Anyletterend)... ");
if(p=myarray(p,&n)){
printf("Youenter%delement(s),sothearraylengthis%d. ",n,n);
for(i=0;i<n;printf("%d",p[i++]));
free(p);
}
elseprintf("Inputfailed... ");
printf(" ");
return0;
}
『叄』 c語言程序設計(輸入一個數n,輸出一個n維數組)
#include <stdio.h>
int main(void)
{
int n,i,*p;
printf("請輸入一個整數:");
scanf("%d",&n);
p=new int[n];
for(i=0;i<n;i++)
*(p+i)=i;
for(i=0;i<n;i++)
printf("%d ",*(p+i));
putchar('\n');
delete []p;
return (0);
}
『肆』 在c語言中如何做到輸入一個數字,就定義了n(為輸入的數字)個數組
這個是沒辦法做到的。
數組定義在編譯鏈接階段就需要確定下來,在系統啟動時需要在數據段分配指定空間。所以是不能在代碼運行過程中動態定義數組的。
你可以用動態申請內存的方法為數組分配空間,但需要用一個統一的指針的偏移動作來實現訪問不同數組的功能。
『伍』 如何用C語言實現輸入一個數,構造一個數組
先開辟一個數組 存儲N個數組指針 再用這N個指針 各指向一個數組,每個數組包含N個元素。
『陸』 C語言如何定義一個N行N列的二維數組任意輸入數據
1、一般情況下,題目會給出N不大於M,m不大於幾的限制條件,此時只需這樣定義即可
int
a[N]M],其中N和M作為常數進行宏定義,比如
#define
N
5
#define
M
6
2、學到動態內存分配後,就不會有這樣的擔憂,需要時,可用malloc()函數在「堆」空間申請內存,該函數的原型是:
void
*malloc(
size_t
size
);,功能是要求系統分配大小為size個位元組的堆空間,注意到該函數的分會類型是void,通過強制類型轉換即可獲得需要的數據類型,比如
int
*p;
p
=
(int
*)malloc(30);
如果申請成功,則返回該區域的首址,失敗則返回NULL。