首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >切换菜单中的c-模式打印

切换菜单中的c-模式打印
EN

Stack Overflow用户
提问于 2016-11-13 21:43:17
回答 2查看 289关注 0票数 0

我是C的新手,但我必须为学校做一个项目。我想打印一个菜单,用户在其中选择一个模式,然后打印出来。应该是这样的:

程序运行

但是,正如您所看到的,当我第二次选择模式时,它不会显示模式。它只显示一个空白。到目前为止,我的代码如下:

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>

int main() {
    int numerodefilas;

    printf("Ingrese la cantidad de filas/longitud del objeto:\n");
    scanf("%d", &numerodefilas);

    int fila, columna, eleccion;
    int numerodecolumnas = numerodefilas;   

    do {
        printf("1: Triangulo\n");
        printf("2: Piramide\n");
        printf("\nSalir\n");
        scanf("%d", &eleccion);

        switch (eleccion) {
        case 1:
            for (fila = 1; fila <= numerodefilas; fila++) {
                for (columna = 1; columna <= numerodecolumnas; columna++) {
                    printf("X");
                }
                printf("\n");
                numerodecolumnas--;
            }
            break;
        case 2: /* Second choice */
            break;
        case 3:
            system("cls");
            printf("Adios!\n");
            break;
        default:
            printf("No seleccionaste una opción correcta!");
            break;
        }
    } while (eleccion != 3);

    system("PAUSE");
    return 0;
}

标识符是西班牙语的,因为我必须用西班牙语来做。只是简单地解释一下名字:

  1. 数列
  2. 数列
  3. 菲拉=线
  4. 选择=选择
  5. "Ingrese悬臂梁/纵横“=输入物体的线/经度”
  6. 三角
  7. 焦酰胺
  8. Adio = Bye

我不知道是否还有人能帮我?如果你需要更多的解释,请告诉我!我做错了什么吗?图案印刷有什么问题吗?我真的很感谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-13 23:21:18

@R.Eduard非常感谢您指出了我的代码中的缺陷,我终于开始工作了:

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>

int main() {
    int numerodefilas;

    printf("Ingrese la cantidad de filas/longitud del objeto:\n");
    scanf("%d", &numerodefilas);

    int fila, columna, eleccion,numerodecolumnas;  

    do {
        printf("1: Triangulo\n");
        printf("2: Piramide\n");
        printf("\nSalir\n");
        scanf("%d", &eleccion);

        switch (eleccion) {
        case 1:
            numerodecolumnas=numerodefilas;
            for (fila = 1; fila <= numerodefilas; fila++) {
                for (columna = 1; columna <= numerodecolumnas; columna++) {
                    printf("X");
                }
                printf("\n");
                numerodecolumnas--;
            }
            break;
        case 2: /* Second choice */
            break;
        case 3:
            system("cls");
            printf("Adios!\n");
            break;
        default:
            printf("No seleccionaste una opción correcta!");
            break;
        }
    } while (eleccion != 3);

    system("PAUSE");
    return 0;
}

在重新启动循环之前,我必须做的更改是重置数字标记值。我只是简单地删除int numerodecolumnas=numerodefilas,并在for循环之前添加它。

再次谢谢你!

票数 0
EN

Stack Overflow用户

发布于 2016-11-13 22:00:44

如果我错了,请纠正我。

您的问题可能是由于没有将列重置为默认值这一事实造成的?

使用numerodecolumnas--;对列进行减法,这是第一次工作,但是第二次,值已经是1或0,因此您的循环可能无法工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40579170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档