c - 小C电子表格程序骨架问题

标签 c

下面是创建一个用 C 编写的小型电子表格的初始框架代码。如果需要少于 7 行,它就可以正常工作,但如果需要 7 行或更多行,则无法正常工作。 (它在第 7 行创建了额外的列,然后挂起。非常感谢任何深入了解问题的帮助

#include <stdio.h>

int main() {
    int x = 0, y = 0;
    int height, width, *p;
    char page[x][y];
    char token[] = "**   ";        /** spaces for formatting **/

    printf(" \n Enter number of rows and columns. separated by a space\t" );
    scanf("%d %d", &height, &width);

    for (y = 0; y < height; y++) {
        printf("Row %d\t ", y);
        page[x][y] = '\0';     /** prog fails at Row 2 if this line absent **/

        for (x = 0; x < width; x++) {
            if (y == 0)
                printf("  Col %c   ", (65 + x));    /** spaces for formatting **/
            else {
                p = &page[x][y];
                *p = token;
                printf("%d%c = ", y, (65 + x));  /** prog fails at Row 3 is these printf statements combined **/
                printf("%s" , *p);
            }
        }
        printf("\n\n");
    }
    return 0;
}

最佳答案

int x = 0, y = 0  ;
char page[x][y] ;

page 中可用元素的数量而言,您认为这有什么作用?您目前期望 heightwidth 变量对此有何影响?

您当前正在创建一个没有任何元素的页面(这违反了约束)。您很幸运(好吧,真的很不幸,因为它隐藏了问题)程序可以做任何事情。

在分配 页面之前,建立从 heightwidth 输入到 xy 的一些连接。一旦以这种方式创建了页面,就无法调整它的大小。

关于c - 小C电子表格程序骨架问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52420673/

相关文章:

c - (*prt)[N][N] 在处理堆分配内存时如何工作?

c - 来自 sscanf 的有趣行为

C编程循环需要解释吗

c - 链接到 Cmake 中不存在的共享库

c++ - clSetKernelArg 抛出 EXC_BAD_ACCESS

c++ - 能不能每次读完串口就清空串口?

c - 使用 C 在单个 printf 语句中打印多个不同的内容

使用 C 函数连接到大 char*

C编程中不能修改struct数组的成员值

C : Pointers and functions 2DArray