0
我有我需要修復的選擇2。例如,如果我有一個名稱爲Marcus,並且用戶輸入'arc',則應顯示包含'arc'的所有名稱,而不僅僅是Marcus。我的代碼工作,如果我只輸入整個名稱,並只顯示一行(註冊)反正。 然後我有選擇3 lagersaldo(代表數量)。如果用戶以數量登記3件物品。20,當搜索數量爲20的所有物品時,應顯示出來。代碼只顯示其中一個。任何人都可以解決這個問題如何在結構中搜索多個寄存器?
struct varor{
int varunummer;
char namn[WORDLENGTH];
int lagersaldo;
};
if(choice=='2'){
int i, namn;
printf("Ange namn: ");
scanf("%d", &namn);
i = ifNamnExists(namn, reg, nrOfGoods);
if(i>0){
printf("\nVarunummer \t Namn \t\t\t Lagersaldo\n");
printf(" %d \t\t %s \t\t\t %d\n",reg[i].varunummer,reg[i].namn,reg[i].lagersaldo);
}else printf("\nNamn finns inte!\n");
}
if(choice=='3'){
int i, lagersaldo;
printf("Ange lagersaldo: ");
scanf("%d", &lagersaldo);
i = ifLagersaldoExist(lagersaldo, reg, nrOfGoods);
if(i>0){
printf("\nVarunummer \t Namn \t\t\t Lagersaldo\n");
printf(" %d \t\t %s \t\t\t %d\n",reg[i].varunummer,reg[i].namn,reg[i].lagersaldo);
}else printf("\nLagersaldo för det nr. finns inte!\n");
}
if(choice=='4') run=0;
}
int ifNamnExists(char namn, const struct varor reg[], int nrOfGoods){
int i;
for(i=0; i < nrOfGoods; i++){
if(strcmp(&namn, reg[i].namn)==0){
return i;
}
}
return -1;
}
int ifVarunummerExist(int varunummer, const struct varor reg[], int nrOfGoods){
int i;
for(i=0; i<nrOfGoods; i++)
if(reg[i].varunummer == varunummer)
return i;
return -1;
}
向我們展示函數:ifNamnExists()和ifLagersaldoExist()並向我們顯示結構。如果可能,向我們展示完整的代碼。 –
@MukulKumar現在更新。整個代碼是300行,我希望這是足夠的 –
'int i,namn;' - >'int i; char namn [WORDLENGTH];','scanf(「%d」,&namn);' - >'scanf(「%s」,namn);','if(i> 0){' - >'if > = 0){','int ifNamnExists(char namn,' - >'int ifNamnExists(char namn [],' – BLUEPIXY