尽管尝试了所有方法仍无法在C中初始化我的数组计数器

瑞安·马克斯(Ryan Marks)

我一直在做这项学校作业,以创建餐厅菜单,而且我有一个数组来存储一个人订购的一切。存储订购的订单的数组是数组OrderedItems [30]。该数组基本上是一个计数器。以某人订购的订单号1为例,OrderItems [1]增加1。

我试图通过使用OrderedItems [30] = {0}进行初始化,并使用for循环分别初始化每个位置,但是,这没有用。请帮我初始化这个数组。我也尝试过memset(OrderedItems,0,30); 而且这也不起作用,所以我真的不知道该怎么办。

我还想补充一点,因为我听说所有全局声明都自动初始化为0,所以我尝试全局声明OrderedItems数组,但这也行不通。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>

    FILE *fPointer1; //for food//
    FILE *fPointer2; //for invoice//
    int count;
    char name[50];
    float price;

void FunctionToPrintFoodItems (void)
{
    fPointer1 = fopen ("Food.txt", "a+");
    float price;

    printf("ITEMCODE\tDESCIPTION\tPRICE (RM)\n");
    while (!feof (fPointer1))
    {
    fscanf(fPointer1, "%d %s %f", &count, name, &price);
    printf("%d\t\t%s\t\t%.2f\n", count, name, price);
    }
    fclose (fPointer1);
}

void clrscr()
{
    system("@cls||clear"); //might not need. Will delete it not needed//
}

void debug (void)
{
    printf("THIS IS PRINTED");
}

#define clear clrscr ();
#define printfood FunctionToPrintFoodItems();
#define de debug();


int main ()
{
    fPointer1 = fopen("Food.txt", "w");
    fprintf(fPointer1, "1 BigM 10.40\n");
    fprintf(fPointer1, "2 Cheeseburger 9.45");
    fclose (fPointer1);

    int i;  
    int MainMenuCode;
    int additems = 0;
    int orderitems;
    int item;
    int ordered;

    int OrderedItems[30] = {0};

    memset(OrderedItems, 0, 30);

    for (i=0 ; i < 30 ; i++)
    {
    OrderedItems[i] = NULL;
    printf("%d: %d\n", i, OrderedItems);
    }
    do
    {
    printf("WELCOME TO RESTOURANT MAC C - Main Menu\n\n");
    printf("[1] Add new food items\n\n");
    printf("[2] Take order\n\n");
    printf("Enter ITEM CODE (0 to Quit) : ");
    scanf("%d", &MainMenuCode);


    if (MainMenuCode  == 1)
    {
        clear;
        additems = 1;
        printf("WELCOME TO RESTAURANT MAC C - Add Menu\n\n");
        printfood;

        printf("\n");

        while ( additems == 1 )

            {
            printf("Enter description (0 to Main Menu) : ");
            scanf("%s", name);

            if (strcmp (name, "0") == 0)
            {
                additems = 0;
                clear;
                break;
            }
            printf("Enter price (RM) : ");
            scanf("%f", &price);

            count ++;

            fPointer1 = fopen ("Food.txt", "a");
            printf("\n%d\t\t%s\t\t%.2f\n\n", count, name, price);
            fprintf(fPointer1, "\n%d %s %.2f", count, name, price);
            fclose (fPointer1);

            }
    }
    else if (MainMenuCode == 2)
    {
        clear;
        orderitems = 1;
        printf("WELCOME TO RESTAURANT MAC C- Take Order\n\n");
        printfood;

    while (orderitems == 1)
        {
            fPointer1 = fopen ("Food.txt", "a+");



            printf("Enter ITEM CODE (0 to Quit, 100 for Main Menu) : ");
            scanf("%d", &item);


            if (item == 100) break;
            else if (item == 0) //final approach//
            {
                fPointer2 = fopen ("Invoice.txt", "a+");

                de;

                fclose (fPointer2);
                return 0;
            }
            else if (item == 900)
            {
                for (i=0 ; i < 30 ; i++)
             printf("%d: %d\n", i, OrderedItems);
            }
            else if (item > count || item < 1)
            {
                printf("\n\nITEM CODE not available. Try again\n\n");
            }
            else 
            {
                OrderedItems[item]++;       
                printf("%d %d", item, OrderedItems);        
            }
            fclose (fPointer1);
        }

    }
    else printf("Please enter a valid Menu Code\n");
    } while (MainMenuCode != 0);
    return 0;
}
-  printf("%d: %d\n", i, OrderedItems);
+  printf("%d: %d\n", i, OrderedItems[i]);

OrderedItems数组第一个元素地址

OrderedItems[0]是一个的数组的第一个元件的。

OrderedItems[i] 是数组第i个元素的值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C ++初始化构造函数初始化器列表中的模板数组

无法从硒的下拉列表中选择选项(尝试了所有方法)

如何从键/初始计数对列表中初始化计数器?

numpy genfromtext或numpy loadtxt“ ValueError:无法将字符串转换为float”或“太多的值无法解压缩”,几乎尝试了所有方法

尽管尝试了所有方法,但“ PHP Extension intl”的重做检查仍无法正常工作

我们如何在C ++中初始化所有值为0的向量

在LabVIEW中初始化计数器

使用指定的初始化器范围初始化C中struct数组的所有struct成员

有没有可扩展的方法来从C ++中的数组初始化结构?

pygame错误:视频系统未初始化,尝试了所有方法

减少对象数组并使用JavaScrip更新初始化的计数器

对象#<HTMLInputElement>没有方法“初始化”

Java-如何允许类的所有方法访问在构造函数中初始化的数组?

类的静态计数器值无法初始化数组

初始化字典,循环浏览列表,在字典中添加单词并增加计数器

数组和初始化多个计数器

错误:错误1215:无法添加外键约束(已尝试了所有方法)

如何在VBA Excel中初始化我的计数器

Rspec对代理类的初始化器私有方法的测试范围

处理:如果在抽奖中进行更改,我将在哪里初始化计数器?

Jquery Smooth Scroll 不起作用,几乎尝试了所有方法

在 Common Lisp 中初始化计数器变量

为什么我的向量初始化使数组中的所有对象都相同?

动态结构初始化和计数器实现

在 for 循环外初始化计数器无法按预期工作

Wordpress 登录刷新问题,尝试了所有方法但它不想加载

C 中的 Memset 函数初始化所有数组

有没有替代 C 中数组的范围初始化的方法?

无法从 C++ 中的大括号初始化器定义类属性数组