c语言怎么定义n个元素的数组,c语言怎么定义n个元素的数组
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;
}
运行结果: