user-0 提问: 求大佬帮忙

回复:
user: user-0
content: 好的 谢谢大佬，你辛苦了

user: user-1
content: 你的代码太神奇了， 改不出来， 只能让他编译通过而已 原则上，是不应该有其他函数再次调用main（）函数的， 既然你写了，就留给你自己处理吧  #include<stdio.h> #include<stdlib.h> int teacher1(); int teacher2();   int main() { 	int n;  	printf("**这是课程设计答辩预约系统**\n"); 	printf("教师请输入1，学生请输入2：\n"); 	scanf("%d", &n); 	getchar(); 	if (n == 1) 	{ 		teacher1(); 	} 	else if (n == 2) 		printf("ok\n");  	else 	{ 		printf("你的输入有误，请重新输入。\n\n"); main(); 	} }  int teacher1() { 	int i, j; 	char a[8], b[8] = { 't','e','a','c','h','e','r' }; 	for (i = 1; i != 0;) 	{ 		printf("请输入正确的用户标识：\n"); 		printf("(老师请输入teacher,学生请输入学号)\n"); 		scanf("%s", a); 		getchar(); 		for (j = 0; j < 8; j++) 			if (a[j] == b[j])  			{ 				teacher2(); 				i = 0; 				break; 			} 			else  			{ 				printf("你的输入有误，请重新输入。\n\n"); 				i++; 				break; 			} 	} 	return 0; }  int teacher2() { 	FILE* p;  	if ((p = fopen("file.txt", "w+")) == NULL) 	{ 		printf("建立文件出错\n"); 		exit(0); 	} 	struct teacher 	{ 		char time[11]; 		int a[13]; //  = { 1,2,3,4,5,6,7,8,9,10,11,12 }; // 这种初始化方法和编译器有关，支持c++11才行  		int b[13]; 	} teachers[10]; // 修改了   	int a, b, c, i, j, n, m, k;   	for (i = 0; i < 10; i++) // 修改了  	{ 		printf("请输入可预约的答辩日期：\n"); 		printf("格式为：xxxx-xx-xx(年-月-日)\n"); 		printf("(中间的横杆用减号代替)\n"); 		scanf("%d-%d-%d", &a, &b, &c); 		if (b <= 0 || b > 12) 		{ 			printf("你的输入有误，请重新输入。\n\n"); 			teacher2(); 		} 		else if (c <= 0 || c > 31) 		{ 			printf("你的输入有误，请重新输入。\n\n"); 			teacher2(); 		} 		else if ((a % 4 == 0) && (b == 2) && (c >= 30)) 		{ 			printf("你的输入有误，请重新输入。\n\n"); 			teacher2(); 		} 		else if ((a % 4 != 0) && (b == 2) && (c >= 29)) 		{ 			printf("你的输入有误，请重新输入。\n\n"); 			teacher2(); 		} 		else if (((b = 4) || (b = 6) || (b = 9) || (b = 11)) && (c == 31)) 		{ 			printf("你的输入有误，请重新输入。\n\n"); 			teacher2(); 		} 		else 		{ //			struct teacher[i];  			sprintf(teachers[i].time, "%d-%d-%d", a,b,c); // teacher1.time = { 'a','-','b','-','c' }; 			for (j = 1; j <= 12; j++) 			{ 				printf("请输入第%d时段可预约人数：\n", j); 				printf("(每节课答辩人数少于5比较合适)\n"); 				scanf("%d", &teachers[i].b[j-1]); 			}  			printf("继续设置日期请输入1，\n"); 			printf("预览预约设置请输入2，\n"); 			printf("退出本角色请输入0。\n"); 			scanf("%d", &n); 			switch (n)  			{ 			  	case 1: 				  i++; 				  break; // 修改    				case 2:  				{   			  		for (int p = 0; p <= i; p++)  			 		{ 		  				printf("%s\n", teachers[p].b[k]);   					}   					break;    					// 修改    				 }  				 case 0: main(); 				  	break; 			} 		} 	} }

user: user-0
content: 抱歉，我以为全复制过来了，现在刚刚学，基础可能没打好 这是寒假作业，如果可以的话能帮我把错说一下吗。回去我一定好好再看看书

user: user-0
content: #include<stdio.h> #include<stdlib.h> int teacher1(); int teacher2();   void main() {     int n;  	printf("**这是课程设计答辩预约系统**\n"); 	printf("教师请输入1，学生请输入2：\n"); 	scanf("%d",&n);    getchar(); 	if(n==1)  	{   teacher1();  	}      else if(n==2) 	       printf("ok\n"); 	     else 		{	 		 printf("你的输入有误，请重新输入。\n\n");          main(); 		} 			   }  int teacher1()  {	int i,j; 	 char a[8], b[8]={'t','e','a','c','h','e','r'};        for(i=1;i!=0;)	  		{ printf("请输入正确的用户标识：\n");	 	      printf("(老师请输入teacher,学生请输入学号)\n"); 	      scanf("%s",a); 		  getchar(); 		  for(j=0;j<8;j++) 	      if(a[j]==b[j]) 				 		  { teacher2(); 		     i=0; 			   break; 		  }		 	      else 		 	 		  { printf("你的输入有误，请重新输入。\n\n"); 		   i++; 		    break; 		  } 		} 	   return 0;  }  int teacher2() { FILE *p;     if((p=fopen("file.txt","w+"))==NULL) 		{ printf("建立文件出错\n");           exit(0); 		}    struct teacher   { 	  char time[11]; 	  int a[13]={1,2,3,4,5,6,7,8,9,10,11,12};       int b[13];   };  	int a,b,c,i,j,n,m,k,p; 	  	for(i=0;i<0;) 	{   printf("请输入可预约的答辩日期：\n"); 	    printf("格式为：xxxx-xx-xx(年-月-日)\n"); 	    printf("(中间的横杆用减号代替)\n");         scanf("%d-%d-%d",&a,&b,&c); 	    if(b<=0||b>12) 		{	printf("你的输入有误，请重新输入。\n\n"); 			    teacher2(); 		} 		else if(c<=0||c>31) 		{	printf("你的输入有误，请重新输入。\n\n"); 			    teacher2(); 		} 		else if((a%4==0)&&(b==2)&&(c>=30)) 		{	printf("你的输入有误，请重新输入。\n\n"); 			    teacher2(); 		} 		else if((a%4!=0)&&(b==2)&&(c>=29)) 		{	printf("你的输入有误，请重新输入。\n\n"); 			    teacher2(); 		} 		else if(((b=4)||(b=6)||(b=9)||(b=11))&&(c==31)) 		{	printf("你的输入有误，请重新输入。\n\n"); 			    teacher2(); 		} 		else 		{struct teacher[i];	 		teacher1.time={'a','-','b','-','c'}; 		 for(j=1;j<=12;j++) 			{  printf("请输入第%d时段可预约人数：\n",j); 		       printf("(每节课答辩人数少于5比较合适)\n"); 		       scanf("%d",tacher[i].b[j-1]); 			} 		  		 printf("继续设置日期请输入1，\n"); 		  printf("预览预约设置请输入2，\n"); 		  printf("退出本角色请输入0。\n");           sacnf("%d",&n); 		  switch(n) 		  case 1:i++; 		  case 2: {  for(p=0;p<=i;p++) 		              { 		                 printf("%s\n",teacher[p].b[k]); 						   } 			          } 				  } 		  case 0:main(); 		} 	}   }

user: user-1
content: 贴你到是贴全啊。 void main（） 要改成 int main（）  72行的错误是 int a,b,c,i,j,n,m,k,p; 这里的p，和FILE *p;重复定义了  后面还一堆别的错 刚学的基础还不会， 搞这么长的做什么啊

user: user-0
content: 双击了还是不知道哪里错 可能我还有没学到的 求指点

user: user-0
content: #include<stdio.h> #include<stdlib.h> int teacher1(); int teacher2();   void main() {     int n;  	printf("**这是课程设计答辩预约系统**\n"); 	printf("教师请输入1，学生请输入2：\n"); 	scanf("%d",&n);    getchar(); 	if(n==1)  	{   teacher1();  	}      else if(n==2) 	       printf("ok\n"); 	     else 		{	 		 printf("你的输入有误，请重新输入。\n\n");          main(); 		} 			   }  int teacher1()  {	int i,j; 	 char a[8], b[8]={'t','e','a','c','h','e','r'};        for(i=1;i!=0;)	  		{ printf("请输入正确的用户标识：\n");	 	      printf("(老师请输入teacher,学生请输入学号)\n"); 	      scanf("%s",a); 		  getchar(); 		  for(j=0;j<8;j++) 	      if(a[j]==b[j]) 				 		  { teacher2(); 		     i=0; 			   break; 		  }		 	      else 		 	 		  { printf("你的输入有误，请重新输入。\n\n"); 		   i++; 		    break; 		  } 		} 	   return 0;  }  int teacher2() { FILE *p;     if((p=fopen("file.txt","w+"))==NULL) 		{ printf("建立文件出错\n");           exit(0); 		}    struct teacher   { 	  char time[11]; 	  int a[13]={1,2,3,4,5,6,7,8,9,10,11,12};       int b[13];   };  	int a,b,c,i,j,n,m,k,p; 	  	for(i=0;i<0;) 	{   printf("请输入可预约的答辩日期：\n"); 	    printf("格式为：xxxx-xx-xx(年-月-日)\n"); 	    printf("(中间的横杆用减号代替)\n");         scanf("%d-%d-%d",&a,&b,&c); 	    if(b<=0||b>12) 		{	printf("你的输入有误，请重新输入。\n\n"); 			    teacher2(); 		} 		else if(c<=0||c>31) 		{	printf("你的输入有误，请重新输入。\n\n"); 			    teacher2(); 		} 		else if((a%4==0)&&(b==2)&&(c>=30)) 		{	printf("你的输入有误，请重新输入。\n\n"); 			    teacher2(); 		} 		else if((a%4!=0)&&(b==2)&&(c>=29)) 		{	printf("你的输入有误，请重新输入。\n\n"); 			    teacher2(); 		} 		else if(((b=4)||(b=6)||(b=9)||(b=11))&&(c==31)) 		{	printf("你的输入有误，请重新输入。\n\n"); 			    teacher2(); 		} 		else 		{struct teacher[i];	 		teacher1.time={'a','-','b','-','c'}; 		 for(j=1;j<=12;j++) 			{  printf("请输入第%d时段可预约人数：\n",j); 		       printf("(每节课答辩人数少于5比较合适)\n"); 		       scanf("%d",tacher[i].b[j-1]); 			} 		  		 printf("继续设置日期请输入1，\n"); 		  printf("预览预约设置请输入2，\n"); 		  printf("退出本角色请输入0。\n");           sacnf("%d",&n); 		  switch(n) 		  case 1:i++; 		  case 2: {  for(p=0;p<=i;p++) 		              { 		                 printf("%s\n",teacher[p]

user: user-1
content: 在错误提示栏目里面双击那个提示， 能够定位到出错的行 你这种截图不放文本代码的， 这么长的图，没法看。 自己定位到72行，看看哪一行的问题吧