C 如何为数组元素创建列表?

C 如何为数组元素创建列表?,c,C,我需要为数组中的每个新元素创建一个列表。例如,我输入(1,2,3,4,5),然后(6,7,8,9,10)我需要在(void视图)中同时显示这两个。我希望你能理解 #include <stdio.h> #define MAX 5 int a[MAX]; int x, s; void view() { for(x = 0; x < MAX; x++) { printf("%d. %d" , s, a[x]); } } int main() {

我需要为数组中的每个新元素创建一个列表。例如,我输入(1,2,3,4,5),然后(6,7,8,9,10)我需要在(void视图)中同时显示这两个。我希望你能理解

#include <stdio.h>
#define MAX 5
int a[MAX];
int x, s;

void view() {
    for(x = 0; x < MAX; x++) {
        printf("%d. %d" , s, a[x]);
    }
}
int main() {
    int run=1;
    while(run) {
        char choice;
        scanf(" %c", &choice);
        if(choice=='e') {
              for(x=0; x<MAX; x++) {
                  printf("\n");
                  printf("\tEnter value: ");
                  scanf("%d", &a[x]);
              }
        }
        else if(choice=='v') {
            view(); 
         }      
    }
}
#包括
#定义最大值5
int a[MAX];
int x,s;
void视图(){
对于(x=0;x对于(x=0;x而言,您需要将以前的输入存储在缓冲区中,例如大小为N*Max的矩阵,其中N是打印输出前可以获取的最大输入数,Max是每个输入时间的整数数

`

#定义最大值5
#定义n10
整数a[N][MAX];
无效视图(整数计数器){

对于(int i=0;i您需要将以前的输入存储在一个缓冲区中,例如大小为N*Max的矩阵,其中N是在打印之前可以接受的最大输入数,Max是每个输入时间的整数数

`

#定义最大值5
#定义n10
整数a[N][MAX];
无效视图(整数计数器){

对于(int i=0;i您需要创建一个2D数组,由
MAXRUN
行和
MAX
列组成。您的代码似乎已经为此做好了准备,因为您似乎已经引入了
s
来计算输入的行数。下面的代码应该对您有用,希望对您有所帮助:

#define MAX 5
#define MAXRUN 5
int a[MAXRUN][MAX];
int x, s;

void view() {
    for (int r = 0; r < s; r++) {
        printf("\n%d. run:", r+1);
        for(x = 0; x < MAX; x++) {
            printf("%d ", a[r][x]);
        }
    }
}

int main() {
    s=0;
    while(s < MAXRUN) {
        char choice;
        printf("\nchoose (e)nter or (v)iew:");
        scanf(" %c", &choice);
        if(choice=='e') {
            for(x=0; x<MAX; x++) {
                printf("Enter value: ");
                scanf("%d", &a[s][x]);
            }
            s++;
        }
        else if(choice=='v') {
            view();
        }
    }
}
#定义最大值5
#定义MaxRun5
int a[MAXRUN][MAX];
int x,s;
void视图(){
对于(int r=0;r对于(x=0;x您需要创建一个2D数组,由
MAXRUN
行和
MAX
列组成。您的代码似乎已经为此做好了准备,因为您似乎已经引入了
s
来计算输入的行数。下面的代码应该适合您,希望对您有所帮助:

#define MAX 5
#define MAXRUN 5
int a[MAXRUN][MAX];
int x, s;

void view() {
    for (int r = 0; r < s; r++) {
        printf("\n%d. run:", r+1);
        for(x = 0; x < MAX; x++) {
            printf("%d ", a[r][x]);
        }
    }
}

int main() {
    s=0;
    while(s < MAXRUN) {
        char choice;
        printf("\nchoose (e)nter or (v)iew:");
        scanf(" %c", &choice);
        if(choice=='e') {
            for(x=0; x<MAX; x++) {
                printf("Enter value: ");
                scanf("%d", &a[s][x]);
            }
            s++;
        }
        else if(choice=='v') {
            view();
        }
    }
}
#定义最大值5
#定义MaxRun5
int a[MAXRUN][MAX];
int x,s;
void视图(){
对于(int r=0;r对于(x=0;x而言,您需要的是一个二维数组。一维数组类似于:

arr[5]={1,2,3,4,5};
arr[5][2]={ {1,2,3,4,5}
            {6,7,8,9,10} };
二维数组如下所示:

arr[5]={1,2,3,4,5};
arr[5][2]={ {1,2,3,4,5}
            {6,7,8,9,10} };
只需使用以下代码代替您的代码:

#include <stdio.h>
#define ROW 5
#define COL 5
int a[ROW][COL];

void view() {
    int i,j;
    for(i = 0; i < ROW; x++) {
        for(j = 0; j < COL; j++) {
            printf("%d" , a[i][j]);
        }
    printf("\n");
    }
}
int main() {
    int run=1,i,j;
    while(run) {
        char choice;
        scanf(" %c", &choice);
        if(choice=='e') {
              for(i=0; i<ROW; i++) {
                  printf("\nList of elements for array %d:",i);
                  for(j=0; j<COL; j++) {
                      printf("\n");
                      printf("\tEnter value: ");
                      scanf("%d", &a[i][j]);
                  }
              }
        }
        else if(choice=='v') {
            view(); 
         }      
    }
}
#包括
#定义第5行
#定义第5列
int a[行][COL];
void视图(){
int i,j;
对于(i=0;i对于(i=0;i而言,您需要的是一个二维数组。一维数组类似于:

arr[5]={1,2,3,4,5};
arr[5][2]={ {1,2,3,4,5}
            {6,7,8,9,10} };
二维数组如下所示:

arr[5]={1,2,3,4,5};
arr[5][2]={ {1,2,3,4,5}
            {6,7,8,9,10} };
只需使用以下代码代替您的代码:

#include <stdio.h>
#define ROW 5
#define COL 5
int a[ROW][COL];

void view() {
    int i,j;
    for(i = 0; i < ROW; x++) {
        for(j = 0; j < COL; j++) {
            printf("%d" , a[i][j]);
        }
    printf("\n");
    }
}
int main() {
    int run=1,i,j;
    while(run) {
        char choice;
        scanf(" %c", &choice);
        if(choice=='e') {
              for(i=0; i<ROW; i++) {
                  printf("\nList of elements for array %d:",i);
                  for(j=0; j<COL; j++) {
                      printf("\n");
                      printf("\tEnter value: ");
                      scanf("%d", &a[i][j]);
                  }
              }
        }
        else if(choice=='v') {
            view(); 
         }      
    }
}
#包括
#定义第5行
#定义第5列
int a[行][COL];
void视图(){
int i,j;
对于(i=0;i对于(i=0;i)问题到底是什么?如何读取或如何打印?@EugeneSh。是的,但每次我打印新元素时,旧元素都会消失。正如我所说的,我需要一种列表来保留旧元素。那么,你需要一个更大的数组。要么将数组过度声明为可接受的大小,例如[65536],或使用malloc/realloc来增长动态分配的数组。@MartinJames这是一个学校作业,不应该太复杂,数组的大小必须为5。那么,如果不涉及更多的复杂情况,例如文件,您就无法实现您想要的目标。如果数组大小为5,它可以存储5个元素,就是这样。问题是什么stion到底是什么?如何读取还是如何打印?@EugeneSh。是的,但每次我打印新元素时,旧元素都会消失。正如我说的,我需要一个列表来保留旧元素。那么,你需要一个更大的数组。要么将数组过度声明为可接受的大小,例如[65536],或使用malloc/realloc来增长动态分配的数组。@MartinJames这是一个学校作业,不应该太复杂,数组的大小必须为5。那么,如果不涉及更多的复杂情况,例如文件,则无法实现您想要的。如果数组大小为5,则可以存储5个元素,就是这样。
void main()
真的吗?
void main()
真的吗?