will you post your code? cuz i seem to mess it up when it touch itOriginally Posted by prog-bman
will you post your code? cuz i seem to mess it up when it touch itOriginally Posted by prog-bman
ya kow what im goingto go to bed and take this think on in the moring with a clear head
good luck.
>need to define/declare BUFSIZ
BUFSIZ is defined in stdio.h
BUFSIZ is already defined in stdio.h
[edit]beaten darnit[/edit]
Hey just a word of advice try beaking the program into some functions it will make your life a heck of alot easier
[edit]and you won't have to use goto's either this way[\edit]
Woop?
ok this is how i have fixed up my program it compiles now but now when i run it i get a illegal operationCode:#include <stdio.h> #include <string.h> int classname(void) //gets charcter class { int charclass; printf("Enter character class\n"); printf("1 : hunter\n"); printf("2 : ranger\n"); printf("3 : force\n"); scanf("%i", charclass ); charclass--; return (charclass); } int classid(void) //gets section ID { int ID; printf("Enter section ID \n"); printf("0 : viridia\n"); printf("1 : greenil\n"); printf("2 : skyly\n"); printf("3 : bluefull\n"); printf("4 : purplenum\n"); printf("5 : pinkal\n"); printf("6 : redria\n"); printf("7 : oran\n"); printf("8 : yellowboze\n"); printf("9 : whitill\n"); scanf("%i", &ID); return (ID); } int num_check(int ID,int charclass)// { int check=0; int check2=0; int qwe; for (qwe = 0; qwe < 10; qwe++) if (qwe == ID)check=1; for (qwe = 0; qwe < 4; qwe++) if (qwe == charclass)check2=1; check=check+check2; return(check); } int id_check(int ID) { int qwe; int IDtype; int blah=1; for (qwe = 0; qwe < 9; qwe = qwe + 2)if (ID == qwe)blah = 0; if (blah == 0)IDtype = 1; else IDtype = 2; return(IDtype); } int menue(void) { int comm; } int food_name(int flag) { int food; printf("feed what?:\n"); if (flag == 1) { printf("1 : monomate\n"); printf("2 : dimate\n"); printf("3 : trimate\n"); printf("4 : monofluid\n"); printf("5 : difluid\n"); printf("6 : trifluid\n"); printf("7 : antidote\n"); printf("8 : antipyralysis\n"); printf("9 : sol atomizer\n"); printf("10 : moon atomizer\n"); printf("11 : star atomizer\n"); printf("12 : to hide food chart \n"); printf("13 : for menu \n"); scanf("%i", &food); } else { printf("1 : to show food chart \n"); printf("2 : for menu \n"); scanf("%i", &food); food=food+11; } return(food); }; char *classy_name[3] = { }; char *statnum[6] = { "SYNC", "IQ ", "DEF ", "POW ", "DEX ", "MIND" }; int comm; int error_flag = 0; int feed_flag = 1; char food; int exit_flag = 0; char feed_chart[5][11][6]={ {{3,3, 5,40, 5, 0}, {3,3,10,45, 5, 0}, {4,4,15,50,10, 0}, {3,3, 5, 0, 5,40}, {3,3,10, 0, 5,45}, {4,4,15, 0,10,50}, {3,3, 5,10,40, 0}, {3,3, 5, 0,44,10}, {4,1,15,30,15,25}, {4,1,15,25,15,30}, {6,5,25,25,25,25}}, {{ 0, 0, 5,10, 0,-1}, { 2, 1, 6,15, 3,-3}, { 3, 2,12,21, 4,-7}, { 0, 0, 5, 0, 0, 8}, { 2, 1, 7, 0, 3,13}, { 3, 2, 7,-7, 6,19}, { 0, 1, 0, 5,15, 0}, { 2, 0,-1, 0,14, 5}, {-2, 2,10,11, 8, 0}, { 3,-2, 9, 0, 9,11}, { 4, 3,14, 9,18,11}}, {{ 0,-1, 1, 9, 0, -5}, { 3, 0, 1, 13, 0,-10}, { 4, 1, 8, 16, 2,-15}, { 0,-1, 0, -5, 0, 9}, { 3, 0, 4,-10, 0, 13}, { 3, 2, 6,-15, 5, 17}, {-1, 1,-5, 4,12, -5}, { 0, 0,-5, -6,11, 4}, { 4,-2, 0, 11, 3, -5}, {-1, 1, 4, -5, 0, 11}, { 4, 2, 7, 8, 6, 9}}, {{ 0,-1, 0, 3, 0, 0}, { 2, 0, 5, 7, 0, -5}, { 3, 1, 4, 14, 6,-10}, { 0, 0, 0, 0, 0, 4}, { 0, 1, 4, -5, 0, 8}, { 2, 2, 4,-10, 3, 15}, {-3, 3, 0, 0, 7, 0}, { 3, 0, -4, -5,20, -5}, { 3,-2,-10, 9, 6, 9}, {-2, 2, 8, 5,-8, 7}, { 3, 2, 7, 7, 7, 7}}, {{ 2,-1,-5, 9,-5, 0}, { 2, 0, 0, 11, 0,-10}, { 0, 1, 4, 14, 0,-15}, { 2,-1,-5, 0,-6, 10}, { 2, 0, 0,-10, 0, 11}, { 0, 1, 4,-15, 0, 15}, { 2,-1,-5, -5,16, -5}, {-2, 3, 7, -3, 0, -3}, { 4,-2, 5, 21,-5,-20}, { 3, 0,-5,-20, 5, 21}, { 3, 2, 4, 6, 8, 5}} }; int I; int blah; int qwe = 0; int poke = 1; int newmag_flag; int main(void) { struct { int new_flag; int ID; int charclass; int stat[6][2]; int PB_; int type; int IDtype; int level; char name[BUFSIZ]; }mag; do{ strcpy(mag.name,"mag"); mag.PB_ = 1; mag.type = 1; mag.level = 5; mag.new_flag= 0; //get you section ID mag.ID=classid(); //get class name mag.charclass=classname(); //makes shure inputs are correct if (num_check(mag.ID,mag.charclass)<2)return(0); //gets ID for lv50 evo mag.IDtype=id_check(mag.ID); do { printf("Enter command:\n"); printf("1: feed\n"); printf("2: new\n"); printf("3: exit\n"); scanf("%i", &comm); switch (comm) { case 1: do { if (error_flag == 0) { food=food_name(feed_flag); } else { printf("Re-input: \n"); scanf("%i", &food); } error_flag = 0; if (food > 13) return(0) ; switch (food) { case 12: if (feed_flag == 0) feed_flag = 1; else feed_flag = 0; break; case 13: exit_flag = 1; break; default: printf("\n the stat effects are\n\n"); for (qwe = 0; qwe < 6; qwe++) { printf("%s : %i.%i\n", statnum[qwe], mag.stat[qwe][0], mag.stat[qwe][1]); } for (qwe = 0; qwe < 6; qwe++) mag.stat[qwe][1] = mag.stat[qwe][1] + feed_chart[mag.type - 3][food - 1][qwe]; } } while (exit_flag == 0); break; case 2: printf("new mag \n"); printf("all stats have been reset\n\n\n"); mag.new_flag=1; case 3: printf("exit"); mag.new_flag=1; blah=55; default: printf("error. try again \n"); } } while (mag.new_flag==0); } while(blah!=55); return(0) ; }
should beCode:scanf("%i", charclass );unless you want different basses exctal and hexCode:scanf("%d",& charclass);
the missing & creates your segfault you don't need the & only on arrays
oh opps i must have missed those when i re
wrote it
Not so. You don't need it on pointers. Thus, when reading a string, you just use the name of the array, which is treated as if it were a pointer in that case. If you wanted to read into an array of integers or what not, you'd still need the address-of operator:you don't need the & only on arrays
Quzah.Code:scanf("%d", &array[cell] );
Hope is the first step on the road to disappointment.
You knew what I meant
I was thinking about saying all that, but I decided not to for him. I forgot about you
ok i got every thing running but im getting 2 phrase errors at the very end now on line 320 and 327
Code:#include <stdio.h> #include <string.h> int classname(void) //gets charcter class { int charclass; printf("Enter character class\n"); printf("0 : hunter\n"); printf("1 : ranger\n"); printf("2 : force\n"); scanf("%i", &charclass ); return (charclass); } int classid(void) //gets section ID { int ID; printf("Enter section ID \n"); printf("0 : viridia\n"); printf("1 : greenil\n"); printf("2 : skyly\n"); printf("3 : bluefull\n"); printf("4 : purplenum\n"); printf("5 : pinkal\n"); printf("6 : redria\n"); printf("7 : oran\n"); printf("8 : yellowboze\n"); printf("9 : whitill\n"); scanf("%i", &ID); return (ID); } int num_check(int ID,int charclass)// { int check=0; int check2=0; int qwe; for (qwe = 0; qwe < 10; qwe++) if (qwe == ID)check=1; for (qwe = 0; qwe < 4; qwe++) if (qwe == charclass)check2=1; check=check+check2; return(check); } int id_check(int ID) { int qwe; int IDtype; int blah=1; for (qwe = 0; qwe < 9; qwe = qwe + 2)if (ID == qwe)blah = 0; if (blah == 0)IDtype = 1; else IDtype = 2; return(IDtype); } int feed(stat,food) { stat= stat+food; if (stat<0)stat=0; return(stat); } int food_name(int flag) { int food; printf("feed what?:\n"); if (flag == 1) { printf("1 : monomate\n"); printf("2 : dimate\n"); printf("3 : trimate\n"); printf("4 : monofluid\n"); printf("5 : difluid\n"); printf("6 : trifluid\n"); printf("7 : antidote\n"); printf("8 : antipyralysis\n"); printf("9 : sol atomizer\n"); printf("10 : moon atomizer\n"); printf("11 : star atomizer\n"); printf("12 : to hide food chart \n"); printf("13 : for menu \n"); scanf("%i", &food); } else { printf("12 : to show food chart \n"); printf("13 : for menu \n"); scanf("%i", &food); } food--; return(food); }; char *statnum[6] = { "SYNC", "IQ ", "DEF ", "POW ", "DEX ", "MIND" }; int comm; char feed_chart[5][11][6]={ {{3,3, 5,40, 5, 0}, {3,3,10,45, 5, 0}, {4,4,15,50,10, 0}, {3,3, 5, 0, 5,40}, {3,3,10, 0, 5,45}, {4,4,15, 0,10,50}, {3,3, 5,10,40, 0}, {3,3, 5, 0,44,10}, {4,1,15,30,15,25}, {4,1,15,25,15,30}, {6,5,25,25,25,25}}, {{ 0, 0, 5,10, 0,-1}, { 2, 1, 6,15, 3,-3}, { 3, 2,12,21, 4,-7}, { 0, 0, 5, 0, 0, 8}, { 2, 1, 7, 0, 3,13}, { 3, 2, 7,-7, 6,19}, { 0, 1, 0, 5,15, 0}, { 2, 0,-1, 0,14, 5}, {-2, 2,10,11, 8, 0}, { 3,-2, 9, 0, 9,11}, { 4, 3,14, 9,18,11}}, {{ 0,-1, 1, 9, 0, -5}, { 3, 0, 1, 13, 0,-10}, { 4, 1, 8, 16, 2,-15}, { 0,-1, 0, -5, 0, 9}, { 3, 0, 4,-10, 0, 13}, { 3, 2, 6,-15, 5, 17}, {-1, 1,-5, 4,12, -5}, { 0, 0,-5, -6,11, 4}, { 4,-2, 0, 11, 3, -5}, {-1, 1, 4, -5, 0, 11}, { 4, 2, 7, 8, 6, 9}}, {{ 0,-1, 0, 3, 0, 0}, { 2, 0, 5, 7, 0, -5}, { 3, 1, 4, 14, 6,-10}, { 0, 0, 0, 0, 0, 4}, { 0, 1, 4, -5, 0, 8}, { 2, 2, 4,-10, 3, 15}, {-3, 3, 0, 0, 7, 0}, { 3, 0, -4, -5,20, -5}, { 3,-2,-10, 9, 6, 9}, {-2, 2, 8, 5,-8, 7}, { 3, 2, 7, 7, 7, 7}}, {{ 2,-1,-5, 9,-5, 0}, { 2, 0, 0, 11, 0,-10}, { 0, 1, 4, 14, 0,-15}, { 2,-1,-5, 0,-6, 10}, { 2, 0, 0,-10, 0, 11}, { 0, 1, 4,-15, 0, 15}, { 2,-1,-5, -5,16, -5}, {-2, 3, 7, -3, 0, -3}, { 4,-2, 5, 21,-5,-20}, { 3, 0,-5,-20, 5, 21}, { 3, 2, 4, 6, 8, 5}} }; int I; int blah; int qwe = 0; int poke = 1; int main(void) { struct { int new_flag; int ID; int charclass; int stat[6][2]; int PB_; int type; int IDtype; int level; char name[BUFSIZ]; }mag; do{ int error_flag = 0; int feed_flag = 1; char food; int exit_flag = 0; strcpy(mag.name,"mag"); mag.PB_ = 1; mag.type = 1; mag.level = 5; mag.new_flag= 0; mag.stat[0][0]=40; mag.stat[1][0]=0; mag.stat[2][0]=5; mag.stat[3][0]=0; mag.stat[4][0]=0; mag.stat[5][0]=0; mag.stat[0][1]=0; mag.stat[1][1]=0; mag.stat[2][1]=0; mag.stat[3][1]=0; mag.stat[4][1]=0; mag.stat[5][1]=0; //get you section ID mag.ID=classid(); //get class name mag.charclass=classname(); //makes shure inputs are correct if (num_check(mag.ID,mag.charclass)<2)return(0); //gets ID for lv50 evo mag.IDtype=id_check(mag.ID); do { printf("Enter command:\n"); printf("1: feed\n"); printf("2: new\n"); printf("3: exit\n"); scanf("%i", &comm); switch (comm) { case 1: do { if (error_flag == 0) { food=food_name(feed_flag); } else { printf("Re-input: \n"); scanf("%i", &food); } error_flag = 0; if (food > 12) return(0) ; switch (food) { case 11: if (feed_flag == 0) feed_flag = 1; else feed_flag = 0; break; case 12: exit_flag = 1; break; default: for (qwe = 0; qwe < 6; qwe++) { mag.stat[qwe][1]=feed(mag.stat[qwe][1],feed_chart[mag.type][food-11][qwe]); if(mag.stat[qwe][1]>99) { mag.stat[qwe][1]=mag.stat[qwe][1]-100; mag.stat[qwe][0]++; mag.level++; printf("level up!!\n"); } for (qwe = 0; qwe < 6; qwe++) { printf("%s : %i.%i\n", statnum[qwe], mag.stat[qwe][0],mag.stat[qwe][1]); } break; } } while (exit_flag == 0); break; case 2: mag.new_flag=1; break; case 3: printf("exit"); return (1); default: printf("error. try again \n"); break; } } /*line 320*/ while (mag.new_flag==0); } while(blah!=55); return(0); } /*line 327*/
That means that your { and } don't all fit you have too many of the {. I don't like the indentation style of your code and it hurts to look through it. I see a nested do loop, maybe over there somewhere. Looking at the errors and finding them is all part of the fun and learning experience. Hope you find it.