hey guys , its my first but hopefully not last post , i have this wordcounter(actually recepie reader) project it looks for the word "csoki" given in input and then if it finds it it asks perfcentage of "csoki"(short for chocholate in my lang) and stores the value in array for future references(SUMming , etc) that i have not yet done
[every recepie name should have a value in the t[] array(representing the % of chocholate in the recepie) and the jcs var should mark the number of the current recepie]
t[jcs]=getchar();
while (t[jcs]>100 || t[jcs]<1){
printf("\n 1-100on kívülit adtál meg ! Add meg újra a csokiarányát \n");
t[jcs]=getchar();
}
my problem is this part ,
it should read input into the current and if its not a percentage in 1-100 it should tell the user to re-input , but it does not seem to work , it doesnt ask for repeat after a bad value , it also repeats things that it shouldnt from the main function ...
#define MAX 120
#define NEV "csoki"
#include <stdio.h>
#include <string.h>
#include <conio.h>
int getline(char s[],int lim) {
int i,c;
for (i=0;i<lim && (c=getchar())!=EOF && c!='\n';++i) s[i]=c;
s[i]='\0';
while (c!=EOF && c!='\n') c=getchar();
return i;
}
int szame (char s[]){
int i;
for (i=strlen(s)-1;i!=0&&s[i]>='0'&&s[i]<='9';--i);
if (s[i]>='0'&&s[i]<='9')
return 1;
else return 0;}
int strkmp(char s1[], char s2[]) {
int i,e,h;
h=0;
i=0;
e=-1;
while (e<80){
++e;
if (s1[e] == s2[0]){
while (s1[e]==s2[i]){
++e;
++i;
++h;
if (i>4){
printf("%d - %d karakter volt a csoki \n\n",e-4,e+1);
return 1;
}
}
}
}
return 0;
}
void main(void) {
int db,jcs,w,t[80]; /*Hányszor találtuk meg NEV-et az inputban */
char s[MAX+1]; /* Az aktuális név */
db=0;
jcs=-1;
w=0;
printf("Adjon meg ENTER-rel lezártan recepteket, és a program\n"
"megszámolja, hogy szerepel-e a %s bennük.\n"
"Befejezés üres sorral.\n",NEV);
while (getline(s,MAX)!=0)
if (strkmp(s,NEV)==1){
++db;
++jcs;
printf("\nVan benne csoki! \nCsokitartalma százalékban ? (1től - 100ig)\n");
t[jcs]=getchar();
while (t[jcs]>100 || t[jcs]<1){
printf("\n 1-100on kívülit adtál meg ! Add meg újra a csokiarányát \n");
t[jcs]=getchar();
}
printf("\n %d -be volt eddig csoki\nkövetkező recept ?\n",db);
}
else{
printf("nincs benne csoki\nkövetkező recept ?\n");
++jcs;
}
getchar();
}