2017-03-20 2 views
1

Grundsätzlich zu drucken, i 5 einzigartige Inserate von Kräutern zu bekommen versuchen, (in diesem Fall), die Lagernummer, Preis etc.C-Programm Einzigartige Elemente einer unsortierten Array

Nach noch 1 Inserate für meinen Array bekommen i Ich möchte eine Funktion verwenden, um die Einträge mit einem Bestand von weniger als 5 zusammen mit ihrem eindeutigen Code (1,2,3 ..) anzuzeigen, wenn kein Ausdruck "keine Kräuter" vorhanden ist, und sie in einer Textdatei speichern zu lassen.

Meine Frage ist, wie zu tun, was ich im zweiten Absatz beschrieben. Aufruf einer Funktion in Fall 2, die alle Kräuter mit weniger als 5 auf Lager anzeigt und sie in einer Textdatei speichert.

Jede Hilfe wird sehr geschätzt!

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

#define user "kaiti" 
#define pass "123pass!" 
#define herbs 5 

**void stock(int i, int code[herbs], int quantity[herbs]) 
{ 
    for (i=0;i<herbs;i++){ 
    if(quantity[i]<5) 
     printf("%d \t %d",code[i], quantity[i]);   
} 
}** 


int main() 
{ 
    float price[herbs]; 
    char username[20], password[20]; 
    int option, i, code[herbs], quantity[herbs], consumption[herbs], choice; 
//-----LOGIN PHASE----- 
printf("Please Enter username:"); 
scanf("%s",username); 

printf("\nPlease enter password:"); 
scanf("%s",password); 

while(strcmp(username, user) != 0 || strcmp(password, pass) != 0) 
{ 
printf("Wrong username or password try again!\n"); 
printf("\nPlease Enter username:"); 
scanf("%s",&username); 

printf("\nPlease enter password:"); 
scanf("%s",&password); 
} 

    printf("\nCorrect username and password.\n\nWelcome Mrs.Kaiti!\n\nWhat would you like to do?"); 
//-----END OF LOGIN PHASE----- 

printf("\n(1)Register Herbs.\n**(2)Display herbs with stock less than 5 and store them in a text file.**\n(3)See the recomended daily dosage of a herb.\n(4)Add or deduct quantity of a herb.\n(5)Sell a herb.\nChoice: "); 
scanf("%d",&option); 

switch(option) 
{ 
    case 1: 

     for(i=0;i<herbs;i++){ 

     printf("Enter herb code: "); 
     scanf("%d",&code[i]); 
     printf("Enter herb quantity: "); 
     scanf("%d",&quantity[i]); 
     printf("Enter recomended daily consumption: "); 
     scanf("%d",&consumption[i]); 
     printf("Enter price: "); 
     scanf("%f",&price[i]); 
     printf("Add another herb?\n(1)Yes.\n(2)Back to login screen.\n"); 
     scanf("%d",&choice); 
     if (choice == 2) 
      return main() ; 
     } 

    **case 2: 

     printf("The Following herbs have a quantity less than 5: \n Code\t quantity \n"); 
     stock(i, code, quantity);** 
+2

brauchen Sie eine Pause kurz vor 'Fall 2' (aber hey, Sie haben keine Frage gestellt) –

+0

Meine Frage ist, wie ich das tun, was ich im zweiten Absatz beschrieben habe :) Aufruf einer Funktion in Fall 2 wird zeige alle Kräuter mit weniger als 5 auf Lager und speichere sie in einer Textdatei. –

Antwort

0

Alles, was Sie tun müssen, ist printf mit fprintf wie folgt zu ersetzen:

void stock(int code[herbs], int quantity[herbs]) 
{ 
    int i; 
    FILE *f = fopen("herbs_file_name", "w"); 

    for (i = 0 ; i < herbs ; i++) 
    { 
     if(quantity[i] < 5) 
     { 
      fprintf(f, "%d \t %d\n", code[i], quantity[i]); 
     } 
    } 
    fclose(f); 
} 

Beachten Sie, dass Sie nicht brauchen, i zu passieren - es ist nur vor Ort erklären.

Verwandte Themen