在C中使用字符串和整数的二维数组创建餐厅菜单系统

mqxuamgl  于 2022-12-26  发布在  其他
关注(0)|答案(2)|浏览(210)

比方说,我想为一家餐馆创建一个“菜单系统”。我非常肯定你会用一个二维数组来做这个,尽管把字符串和整数组合成一个数组给我带来了一些麻烦。程序会尽最大努力打印出正确的前几个字符,然后放弃,开始摸索数字。
下面是代码和输出的屏幕截图:

// Import libraries
#include<stdio.h>
#include<stdlib.h>
// Initialize main function
void main()
{   // Beginning of code

    char menuOfItems[6][25][6] =
    {{
        "Pizza",
        "Fish fillet",
        "Vegetable soup"
        "Ice Cream",
        "Coca Cola",
        "Mineral water",
    },
    {
        45,
        50,
        40,
        25,
        15,
        10
    }};

    for(int i = 0; i < 6; i++)
    {
        printf("%s -- %d\n",menuOfItems[i][i]);
    }

}   // End of code

正如我承诺的here's the screenshot

scyqe7ek

scyqe7ek1#

实际上,你创建的不是二维数组,而是三维数组,并试图打印它的对角线。而且你忘记了“蔬菜汤”项后面的逗号。在这种情况下,使用结构体数组会更好:

// Import libraries
#include<stdio.h>
#include<stdlib.h>
// Initialize main function
void main()
{   // Beginning of code
    //
    struct menuItem {
            char m_name[26];
            int m_price;
    };

    struct menuItem menuOfItems[6]=
    {
            {"Pizza",45},
            {"Fish fillet", 50},
            {"Vegetable soup", 40},
            {"Ice Cream", 25},
            {"Coca Cola", 15},
            {"Mineral water", 10}
    };

    for(int i = 0; i < 6; i++)
    {
        printf("%s -- %d\n", menuOfItems[i].m_name, menuOfItems[i].m_price);
    }

}   // End of code
wbgh16ku

wbgh16ku2#

数组在C中是同构的--它们只能包含单一类型的元素。
但是,该类型可以是聚合类型,如struct
请考虑以下几点:

#include <stdio.h>

struct item {
    char name[128];
    unsigned value;
};

int main(void)
{
    struct item menu[] = {
        { "Pizza", 45 },
        { "Fish fillet", 50 },
        { "Vegetable soup", 40 },
        { "Ice Cream", 25 },
        { "Coca Cola", 15 },
        { "Mineral water", 10 }
    };

    size_t length = sizeof menu / sizeof *menu;

    for (size_t i = 0; i < length; i++)
        printf("%s - %u\n", menu[i].name, menu[i].value);
}
Pizza - 45
Fish fillet - 50
Vegetable soup - 40
Ice Cream - 25
Coca Cola - 15
Mineral water - 10

相关问题