是否有可能生成一个包含5个元素的数组,该数组可以不完全填充?
我想要创建的数组可以有5个元素的最大大小,如下面的代码所示:
#include <stdio.h>
#define M 5
void sort (int *, int);
void create (int *tab, int size);
void display();
void insert();
void del();
void exit();
int main()
{
int c;
int arr[M];
printf("Choose an option: n");
printf("1. Input values to the array (MUST BE DONE FIRST).n");
printf("2. Show elements of the array.n");
printf("3. Update array.n");
printf("4. Remove element from the array.n");
printf("5. Sort array. n");
printf("6. Exit program.n");
printf("nYour option: ");
scanf("%d", c);
switch(c)
{
case 1:
create(arr, size);
break;
case 2:
display();
break;
case 3:
insert();
break;
case 4:
del();
break;
case 5:
sort(int *, int);
break;
case 6:
exit();
break;
}
}
void create(int *tab, int size)
{
printf("Input amount of elements in array: ");
scanf("%d", &size);
}
这就是我到目前为止所做的。在之前版本的代码中,程序不是只填充所有5个元素中的几个元素,而是填充整个数组,将随机值放入比输入元素数量多的单元格中(例如,在一个只需要填充三个元素的数组中,它被完全填充,除了arr[3]
和arr[4]
显示不需要的值:
******** MAIN MENU *********
1. Create table (CREATE IT FIRST!!!!)
2. Display table
3. Add element
4. Delete element
5. EXIT
Enter your option : 1
Input amount of elements: 3
******** MAIN MENU *********
1. Create table (CREATE IT FIRST!!!!)
2. Display table
3. Add element
4. Delete element
5. EXIT
Enter your option : 3
Tab[0]: 1
Tab[1]: 2
Tab[2]: 3
Tab[3]: 4
Tab[4]: 5
Tab[5]: 6
Tab[6]: 7
Tab[7]: 8
******** MAIN MENU *********
1. Create table (CREATE IT FIRST!!!!)
2. Display table
3. Add element
4. Delete element
5. EXIT
Enter your option : 2
1 2 3 4 5
******** MAIN MENU *********
1. Create table (CREATE IT FIRST!!!!)
2. Display table
3. Add element
4. Delete element
5. EXIT
Enter your option :
那么,是否有可能在C中生成一个未完全填充的数组?
不可以,你可以初始化部分数组,但整个数组将被填充。未初始化的元素将被归零。