Arrays 有人能帮我识别上一个函数中的错误吗?

Arrays 有人能帮我识别上一个函数中的错误吗?,arrays,c,function,Arrays,C,Function,我已经编写了这个程序(它还没有完成,还有更多的函数要添加),但是,我想知道为什么我的withinBudget函数有时会产生正确的结果,而有时会产生不准确的结果。withinBudget计算客户是否有足够的余额。如果返回true,则打印购买成功或打印余额不足 #include <stdio.h> int isItemExist(char itemPrefixes[], char itemPrefix); void displayMenu(char itemPrefixes[], i

我已经编写了这个程序(它还没有完成,还有更多的函数要添加),但是,我想知道为什么我的withinBudget函数有时会产生正确的结果,而有时会产生不准确的结果。withinBudget计算客户是否有足够的余额。如果返回true,则打印购买成功或打印余额不足

#include <stdio.h> 

int isItemExist(char itemPrefixes[], char itemPrefix);
void displayMenu(char itemPrefixes[], int itemPrices[], int n);
int withinBudget(int budget, char itemPurchased, char itemPrefixes[], int itemPrices[]);


int n;


int main() {

char itemPrefixes[5];
int itemPrices[5];
int budget = 0;
char itemPurchased;

printf("***ItemPrefixes***");
printf("\nA: Apple\n");
printf("O: Orange\n");
printf("M: Mango\n");
printf("P: Pear\n");
printf("G: Grapes\n");

printf("\n***ShopKeeperPanel***");
printf("\nHow many fruit items do you want to add to the shop?: ");
scanf_s("%d", &n);

int chosenFruitItem = 0;
while (chosenFruitItem < n) {

printf("\n(%d) Enter the item prefix: ", chosenFruitItem + 1);
char itemPrefix = ' ';
scanf_s(" %c", &itemPrefix, 1);
if (isItemExist(itemPrefixes, itemPrefix) == 1) {
printf("Error Item already exist");
continue;
}
else {
itemPrefixes[chosenFruitItem] = itemPrefix;

printf("Enter price for item (%c): ", itemPrefix);
scanf_s("%d", &itemPrices[chosenFruitItem]);
chosenFruitItem++;

}




}

displayMenu(itemPrefixes, itemPrices, n);

printf("\n**CUSTOMER PANEL***");
printf("\nWhat is your budget for today?: ");
scanf_s("%d", &budget);

printf("\nPlease enter Item Prefix from the menu to purchase: ");
scanf_s(" %c", &itemPurchased, 1);

if (withinBudget(budget, itemPurchased, itemPrefixes, itemPrices) == 1) {

printf("PURCHASS SUCCESS");
}
else
{
printf("INSUFFICENT BUDGET");
}




}

int isItemExist(char itemPrefixes[], char itemPrefix) {

for (int i = 0; i < n; i++) {

if (itemPrefixes[i] == itemPrefix) {
return 1;
}
}

return 0;


}

void displayMenu(char itemPrefixes[], int itemPrices[], int n) {

printf("\n*** ShopMenu ***");
printf("\nItem: \t Price: ");

for (int i = 0; i < n; i++) {

printf("\n%c:\t %d", itemPrefixes[i], itemPrices[i]);

}}

int withinBudget(int budget, char itemPurchased, char itemPrefixes[], int itemPrices[]) {

for (int i = 0; i < n; i++) {

if (itemPurchased == itemPrefixes[i] && itemPrices[i] < budget)
{
return 1;
}

return 0;

}




}
#包括
int-isItemExist(char-itemPrefixes[],char-itemPrefix);
void displayMenu(字符项前缀[],整数项价格[],整数n);
int withinBudget(int预算、购买的char项目、char项目前缀[]、int项目价格[]);
int n;
int main(){
字符项前缀[5];
国际商品价格[5];
int预算=0;
购买的煤焦;
printf(“***项前缀***”);
printf(“\nA:Apple\n”);
printf(“O:Orange\n”);
printf(“M:Mango\n”);
printf(“P:Pear\n”);
printf(“G:Grapes\n”);
printf(“\n***店主面板***”);
printf(“\n您想向商店添加多少水果项目?:”;
扫描频率(“%d”和“&n”);
int chosenfuturitem=0;
while(chosen水果项目
输出:


请识别您的代码。任何一个最简单的错误都可能因此而被忽视

你有一辆自动的

对代码执行此操作后,下面是最后一个函数:

int withinBudget(int budget, char itemPurchased, char itemPrefixes[], int itemPrices[]) {

  for (int i = 0; i < n; i++) {

    if (itemPurchased == itemPrefixes[i] && itemPrices[i] < budget) {
      return 1;
    }

    return 0;

  }

}

请识别您的代码。任何一个最简单的错误都可能因此而被忽视

你有一辆自动的

对代码执行此操作后,下面是最后一个函数:

int withinBudget(int budget, char itemPurchased, char itemPrefixes[], int itemPrices[]) {

  for (int i = 0; i < n; i++) {

    if (itemPurchased == itemPrefixes[i] && itemPrices[i] < budget) {
      return 1;
    }

    return 0;

  }

}

Sulekha,发布示例输入、看到的输出和预期的输出将有所帮助。我尝试在Now中添加这些内容,最好将文本作为文本而不是图片发布。@chux,老实说,我不知道您希望我记录的确切内容编译器警告:“withinBudget”:并非所有控件路径都返回值。您将
返回0
放在错误的位置,这一点对于格式正确的代码是显而易见的;)。我认为逻辑可能也需要注意。Sulekha,发布示例输入、看到的输出和预期的输出将有所帮助。我尝试在Now中添加这一点,最好将文本作为文本而不是图片发布。@chux,老实说,我不知道您到底想让我记录什么。编译器警告:“withinBudget”:并非所有控件路径都返回值。您将
返回0
放在错误的位置,这一点对于格式正确的代码是显而易见的;)。我认为逻辑可能也需要注意。