c - 如何打印值列表?

标签 c

当我输入新值时,它们应该在View中显示为列表,如

1. 1 2 3 4 5 //first values
2. 6 5 9 8 3 // second values
3. 4 2 3 8 5 // ...

但它只打印整个列表的第一个值。如果可能的话,我尝试在没有二维数组的情况下修复此问题。有什么想法吗?

#include <stdio.h>
#define LENGTH 5
const char *menuMsg = "\n\n\t Menu \n\n\t v (View)\n\t e (Enter)\n\t q (Quit)\n";

int main(){
    int run = 1;
    while(run){
        puts(menuMsg);
        char choice;
        scanf(" %c", &choice);

        int x, z;
        int a[LENGTH];
        int list=6;

        if(choice=='e') {
            for(x=0; x<LENGTH; x++){
                printf("Enter nr.%d: ", x+1);
                scanf("%d", &a[x]);
            }
            z++;
        }
        else if(choice=='v') {
            for(z=0; z<list; z++){
                printf("\n%d. ", z+1);
                for(x=0; x<LENGTH; x++){
                    printf("%d ", a[x]);
                }
            }
        }
        else if(choice=='q') run = 0;
    }
    return 0;
}

最佳答案

数组 a 的长度仅为 5。我担心您在哪里定义它,因为您希望它打印出 6 行,每行 5 个值 - 30 个单独的数字。

这可能有效,请根据您的需要进行修改:

#define LENGTH 5 // amount in a row (number of cols)
#define HEIGHT 6 // amount of rows

a[LENGTH * HEIGHT] = { 0, 2, 3, 4...};

for (z=0; z < HEIGHT; z++){
   printf("\n%d. ", z+1);
   for (x=0; x < LENGTH; x++){
        printf("%d ", a[x + LENGTH*z]);
   }
}

关于c - 如何打印值列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46749123/

相关文章:

c++ - 如何以编程方式识别视频中更改的帧

c - C 中的 Alarm() 和 SIGALRM 问题

c++ - 如何设计一种数据结构,为 CUDA 中的每个线程吐出一个可用空间

c - 如何让xuartlite传输速度变慢

c++ - 如何解释此错误,堆摘要,未初始化的变量?

c -++struct.field 中的运算符层次结构

c - 取消引用指向不完整类型的指针时出错

编译器之间 free/malloc 的兼容性

c - 下面的变量声明会导致词法错误还是语法错误?

c - 从文件中读取文本并在公式中使用