rendered paste body#include <stdio.h>#include <string.h>#include <ctype.h>#include <conio.h>#define TAVARAT_KOKO 100#define BUF_KOKO 50typedef struct tavara { char nimi[BUF_KOKO]; double hinta; long kpl; } Tavara;int lisays(Tavara tavarat[]);int poista(Tavara tavarat[]);int valinta_KE();//testitarkoitukseenvoid annaTeksti(char jono[]);int vertaa(char* a, char* b);void annaIntLuku(int* luku);void annaDoubleLuku(double* luku);int main(int argc, char** argv){ //testi testi... int valinta; Tavara tavarat[TAVARAT_KOKO] = {0}; printf("nimi %s\nhinta %lf\nkpl %d", tavarat[0].nimi, tavarat[0].hinta, tavarat[0].kpl); if(strcmp(tavarat[0].nimi, "") == 0) puts("\nnimi = 0"); printf("K/E"); valinta = valinta_KE(); printf("%d",valinta); lisays(tavarat); lisays(tavarat); lisays(tavarat); getchar(); return 0;}int lisays(Tavara tavarat[]){ int i; double hinta; int kpl; int vanha = 0; int valinta; char nimi[BUF_KOKO]; printf("Anna tavaran nimi: "); annaTeksti(nimi); for(i=0; i<TAVARAT_KOKO; i++) { if(vertaa(tavarat[i].nimi, nimi)) //Vertailufunktion pitäisi antaa 1 jos nimet on samoja! { vanha = 1; //Vanha nimi break; } } if(vanha==0) // Ei ole vanha nimi.(eli se on uusi...) Etsitään tyhjä paikka. { for(i=0; i<TAVARAT_KOKO; i++) //Onko käytössä? { if(strcmp(tavarat[i].nimi,"") == 0) //Ei ole käytössä break; if(i == TAVARAT_KOKO-1) //Kaikki paikat käytössä: palautetaan 0 printf("Tavaralista on t\x84ynn\x84!\n"); return 0; } } strcpy(tavarat[i].nimi, nimi); if(vanha) { printf("Muutetaanko hintaa? (k/e) Vanha hinta on %d\n", tavarat[i].hinta); valinta = valinta_KE(); } if(vanha==0 || valinta) { printf("Anna tuotteen hinta: "); annaDoubleLuku(&tavarat[i].hinta); } valinta = 0; if(vanha) { printf("Muutetaanko kappalem\x84\x84r\x84\x84? (k/e) Vanha m\x84\x84r\x84 on %d\n",tavarat[i].kpl); valinta = valinta_KE(); } if(vanha==0 || valinta) { printf("Anna tuotteiden m\x84\x84r\x84: "); annaIntLuku(&tavarat[i].kpl); } return 1;}int poista(Tavara tavarat[]){ int i; char nimi[BUF_KOKO]; printf("Anna poistettavan tavaran nimi: "); annaTeksti(nimi); for(i=0; i<TAVARAT_KOKO; i++) { if(vertaa(tavarat[i].nimi, nimi)) /*Vertailua!*/ { strcpy(tavarat[i].nimi, ""); printf("Poisto onnistui!\n"); return 1; } if(i == TAVARAT_KOKO-1) { printf("Poistettavaa tietoa ei l\x94ytynyt!\n"); return 0; } }}int valinta_KE(){ char c; do { c = tolower(getch()); if(c == 'k') return 1; else if(c == 'e') return 0; } while(c != 'k'||c != 'e');}//testikamaavoid annaTeksti(char jono[]){ gets(jono);}int vertaa(char* a, char* b){ printf(" vertailu %s %s \n", a, b); return 0;}void annaIntLuku(int* luku){ char buf[BUF_KOKO]; gets(buf); sscanf(buf, "%d", luku);}void annaDoubleLuku(double* luku){ char buf[BUF_KOKO]; gets(buf); sscanf(buf, "%lf", luku);}