c语言怎么定义n个元素的数组,c语言怎么定义n个元素的数组

http://www.itjxue.com  2023-01-05 03:56  来源:未知  点击次数: 

c语言:在main函数中,定义一个含N个元素的数组,其中N是符号常量,然后编写下列各子函数完成相应的功能

你看看是这个吧,常量N定义的是10

#define N 10

#includestdio.h

void main()

{

void sr(int a[]);

void sc(int a[],int m);

void js(int a[],int *max,int *min);

void px(int a[]);

int a[N],m,max,min;

/***************************/

printf("输入一个数m ");

scanf("%d",m);

sr(a);

sc(a,m);

js(a,max,min);

printf("最大值max=%d,最小值min=%d\n",max,min);

px(a);

sc(a,m);

}

/***********************/

void sr(int a[])

{

int i;

printf("初始化数组,输入 %d 个数 :\n",N);

for(i=0;iN;i++)

scanf("%d",a[i]);

}

/************************/

void sc(int a[],int m)

{

int i;

printf("输出数组a,每行%d 个数:\n",m);

for(i=0;iN;i++)

printf("%5d",a[i])((i+1)%m==0)printf("\n");

printf("\n");

}

/*************************/

void js(int a[],int *max,int *min)

{

int i;

printf("求最大最小值\n");

*max=*min=a[0];

for(i=1;iN;i++)

{

if(*maxa[i])*max=a[i];

if(*mina[i])*min=a[i];

}

}

void px(int a[])

{

int i,j,tmp;

printf("数组排序\n");

for(i=0;iN-1;i++)

for(j=i+1;jN;j++)

if(a[i]a[j])

{

tmp=a[i];

a[i]=a[j];

a[j]=tmp;

}

}

用c语言定义一整型数组,最多N个元素

#include?stdio.h

#include?stdlib.h

#include?time.h

#define?N?50

int?a[N];

int?count=0;

void?append()

{

printf("\n\n请输入增加的值:?");

int?n;

scanf("%d",n);

if(count+1N)

{

a[count++]=n;

printf("\n增加成功");

getch();

return;?

}

else

{

printf("\n数组个数已达到最大");

getch();

return;

}

}

void?del()

{

int?n;

printf("\n\n请输入要删除的值:?");

scanf("%d",n);

int?i,j=0;

for(i=0;icount;i++)

{

if(a[i]==n)

{

for(j=i;jcount-1;j++)

{

a[j]=a[j+1];

}

count--;

printf("\n删除成功");

getch();

return;

break;

}

}

printf("\n未找到要删除的值");

getch();

return;

}

void?sort()

{

int?i,j,n;

for(i=0;icount-1;i++)

{

for(j=0;jcount-1-i;j++)

{

if(a[j]a[j+1])

{

n=a[j];

a[j]=a[j+1];

a[j+1]=n;

}

}

}

printf("\n\n排序成功");

getch();

}

void?find()

{

int?i,n;

printf("\n\n请输入要查找的值:?");

scanf("%d",n);

for(i=0;icount;i++)

{

if(a[i]==n)

{

printf("\n\n找到,?下标为:%d",i);

getch();

return;

}

}

printf("\n\n未找到");

getch();

}

void?display()

{

printf("\n\n");

int?i;

for(i=0;icount;i++)

{

printf("%2d?",a[i]);

}

printf("\n\n共有%d个元素",count);

getch();

return;

}

void?menu()

{

int?sel;

while(1)

{

system("cls");

printf("1---------增加\n");?

printf("2---------删除\n");

printf("3---------排序\n");

printf("4---------查找\n");

printf("5---------显示\n");

printf("6---------退出\n");

printf("\n\n请选择(1--6):?");

scanf("%d",sel);

if(sel0?||?sel6)

{

continue;

}

switch(sel)

{

case?1:

append();

break;

case?2:

del();

break;

case?3:

sort();

break;

case?4:

find();

break;

case?5:

display();

break;

case?6:

return;

}

}

}

int?main()

{

srand((unsigned)time(0));

int?i;

printf("定义该数组有多少个元素(不大于50):?");

scanf("%d",count);

for(i=0;icount;i++)

{

a[i]=rand()%99+1;

}

menu();

return?0;

}

C语言数组问题! 怎么定义一个数组,由玩家输入n个元素啊? 定义数组不是只能是常量,不能是变量n吗

这个跟编译器有关,以前的编译器不支持,我使用的gcc-9.2.0支持非常量声明数组元素个数。

示例代码:

int main(void){

int m = 0, n = 0;

printf("input m: ");

scanf("%d",m);

printf("input n: ");

scanf("%d",n);

int p[m*n];

int t = 0;

for(int i=0; i m; i++)

for(int j=0; j n; j++)

*(p + i*n + j) = t++;

for(int i=0; i m; i++){

for(int j=0; j n; j++)

printf("%10d ",*(p + i*n + j));

printf("\n");

}

return 0;

}

运行结果:

(责任编辑:IT教学网)

更多

推荐网络媒体文章