当前位置:首页 » 编程语言 » c语言根据输入n定义一个数组
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言根据输入n定义一个数组

发布时间: 2022-09-12 00:35:13

‘壹’ 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。