user-0 提问: C语言—— 菜鸟求助！！！！！！！！！！！！！！

回复:
user: user-1
content: 已经解决了问题，嘿嘿

user: user-0
content: 引用 20 楼 u011488256 的回复:同学！ 如果你想知道你错哪了 首先你应该把你程序最基本的错误改过来，实在太多，改过来在运行看还有没有错误，你这些基本的错误也许就为导致你上面的错误，下面我再你程序里面注释中给你提出来，然后你自己改改#include<stdio.h> main() { int pass=0,fail=0; int n,i,term,score;     //首先这个地方的term 你一定要给一个初值，你后面再用时系统都不知道他的初值 term=0； printf("please enter the students number"); scanf("%/d",&n);    //这里应该是 scanf("%d",&n); 中间多个斜杠  printf("please enter the score"); for(i=0;i<n;i++) { scanf("%d",&score);     	if(score=-1)     //这里的判定条件因该是 score==-1！！ 两个等号，不然就是直接赋值了！ { break; }     term=term+score;      }       if(score>=60)     //按照你的题意，应该将if和else放在循环里面！  {  pass++;  }  else  {  fail++;  }  printf("%d,%d,%d",pass,fail,term/n); }  你先把这些改了 在运行试试 原来的代码 根本就不存在找你说的错误 因为基本很多东西都是乱的   照你的意思改了，还是不行。下面是我改后的代码：#include<stdio.h> main() { 	int pass=0,fail=0; 	int n,i,term=0,score;     	printf("please enter the students number"); 	scanf("%d",n); 	printf("please enter the score"); 	for(i=0;i<n;i++) 	{ 		scanf("%d",&score);     		if(score==-1)     		{ 			break; 		} 	term=term+score;    	 	if(score>=60)    	{  		pass++;  	}  	else  	{ 		fail++; 	} 	printf("%d,%d,%d",pass,fail,term/n);     } }

user: user-2
content: 楼主的代码让人抓狂，建义不要写这样的格式成长。不然别人会找你要精神损失费的。要养成了的风格。

user: user-3
content: 第七行：scanf("%/d",&n)；的%和d之间是不是多了一个/.

user: user-2
content: #include<stdio.h>  main()  {     int pass=0,fail=0;     int n=0,i,term=0,score=0;     printf("please enter the students number");     scanf("%d",&n);      \ERROR1:你这里多了一个反斜杠      printf("please enter the score");          for(i=0;i<n;i++)     {         scanf("%d",&score);               if(score==-1)   \ERROR2:你这里少了一个等号              {              break;              }                            if(score>=60)              {                pass++;              }         else             {                 fail++;             }                              term=term+score;     }            printf("pass:%d\n,fail:%d\n,averge:%d\n",pass,fail,term/n);                     while (1);  }

user: user-4
content: 同学！ 如果你想知道你错哪了 首先你应该把你程序最基本的错误改过来，实在太多，改过来在运行看还有没有错误，你这些基本的错误也许就为导致你上面的错误，下面我再你程序里面注释中给你提出来，然后你自己改改#include<stdio.h> main() { int pass=0,fail=0; int n,i,term,score;     //首先这个地方的term 你一定要给一个初值，你后面再用时系统都不知道他的初值 term=0； printf("please enter the students number"); scanf("%/d",&n);    //这里应该是 scanf("%d",&n); 中间多个斜杠  printf("please enter the score"); for(i=0;i<n;i++) { scanf("%d",&score);     	if(score=-1)     //这里的判定条件因该是 score==-1！！ 两个等号，不然就是直接赋值了！ { break; }     term=term+score;      }       if(score>=60)     //按照你的题意，应该将if和else放在循环里面！  {  pass++;  }  else  {  fail++;  }  printf("%d,%d,%d",pass,fail,term/n); }  你先把这些改了 在运行试试 原来的代码 根本就不存在找你说的错误 因为基本很多东西都是乱的

user: user-5
content: 引用 17 楼 u012848622 的回复:[quote=引用 16 楼 niu91 的回复:] [quote=引用 13 楼 u012848622 的回复:] [quote=引用 5 楼 niu91 的回复:] #include<stdio.h> void main() { 	int pass=0,fail=0; 	int n,i,term=0,score;  	printf("please enter the students number"); 	scanf("%d",&n);								//here  	 	for(i=0;i<n;i++) 	{ 		printf("please enter the score");		//提示输出 		scanf("%d",&score);     	if(-1 == score)							//这个错误很典型，最好改成 -1 == score 		{ 			break; 		}else{										//这里加上else会更好些  		term=term+score;							//term没有赋处值！ 		}  		//下面的语句要在for()里才能访问到每个输入时的score 		if(score>=60) 		{ 			 pass++; 		 } 		 else 		 { 			fail++; 		 } 	}  			  	  	 printf("通过人数 %d,未及格人数%d,平均分（取整）%d\n",pass,fail,term/n); }    嗯嗯，这个程序可以运行，但是结果有点问题。这个问题不是结果不对，而是有点不尽如人意，如果把第18行的printf放到循环之外会好很多！先谢谢你帮我解答，而且答案也很好，可是我还是很想知道我的代码问题出在哪了。麻烦你再看一下我的菜鸟级程序，好不好？？[/quote] 我把你的程序直接粘贴在我的编译器里，是可以编译成功的，编译没有问题。是不是你其他地方弄错了[/quote]  编译器的问题还是数据库的问题？可是它提示的是语法错误。[/quote] 先写一个比较小的程序（当然要保证正确），运行一下，看看行不行。

user: user-2
content: 楼主，我贴中代码以验证过！错误也指出来了

user: user-6
content: 引用 楼主 u012848622 的回复:#include<stdio.h> main() { 	int pass=0,fail=0; 	int n,i,term,score; 	printf("please enter the students number"); 	scanf("%/d",&n); 	printf("please enter the score"); 	for(i=0;i<n;i++) 	{ 		scanf("%d",&score);     	if(score=-1) 		{ 			break; 		}     term=term+score;      }       if(score>=60) 	 { 		 pass++; 	 } 	 else 	 { 		 fail++; 	 } 	 printf("%d,%d,%d",pass,fail,term/n); } 编译的时候不问题，运行的时候出现“error C2059: syntax error : '}' 执行 cl.exe 时出错. syntax error 为语法错误，编译竟然没有找出来，可以通过设置断点打印，锁定出错地点。

user: user-0
content: 引用 16 楼 niu91 的回复:[quote=引用 13 楼 u012848622 的回复:] [quote=引用 5 楼 niu91 的回复:] #include<stdio.h> void main() { 	int pass=0,fail=0; 	int n,i,term=0,score;  	printf("please enter the students number"); 	scanf("%d",&n);								//here  	 	for(i=0;i<n;i++) 	{ 		printf("please enter the score");		//提示输出 		scanf("%d",&score);     	if(-1 == score)							//这个错误很典型，最好改成 -1 == score 		{ 			break; 		}else{										//这里加上else会更好些  		term=term+score;							//term没有赋处值！ 		}  		//下面的语句要在for()里才能访问到每个输入时的score 		if(score>=60) 		{ 			 pass++; 		 } 		 else 		 { 			fail++; 		 } 	}  			  	  	 printf("通过人数 %d,未及格人数%d,平均分（取整）%d\n",pass,fail,term/n); }    嗯嗯，这个程序可以运行，但是结果有点问题。这个问题不是结果不对，而是有点不尽如人意，如果把第18行的printf放到循环之外会好很多！先谢谢你帮我解答，而且答案也很好，可是我还是很想知道我的代码问题出在哪了。麻烦你再看一下我的菜鸟级程序，好不好？？[/quote] 我把你的程序直接粘贴在我的编译器里，是可以编译成功的，编译没有问题。是不是你其他地方弄错了[/quote]  编译器的问题还是数据库的问题？可是它提示的是语法错误。

user: user-5
content: 引用 13 楼 u012848622 的回复:[quote=引用 5 楼 niu91 的回复:] #include<stdio.h> void main() { 	int pass=0,fail=0; 	int n,i,term=0,score;  	printf("please enter the students number"); 	scanf("%d",&n);								//here  	 	for(i=0;i<n;i++) 	{ 		printf("please enter the score");		//提示输出 		scanf("%d",&score);     	if(-1 == score)							//这个错误很典型，最好改成 -1 == score 		{ 			break; 		}else{										//这里加上else会更好些  		term=term+score;							//term没有赋处值！ 		}  		//下面的语句要在for()里才能访问到每个输入时的score 		if(score>=60) 		{ 			 pass++; 		 } 		 else 		 { 			fail++; 		 } 	}  			  	  	 printf("通过人数 %d,未及格人数%d,平均分（取整）%d\n",pass,fail,term/n); }    嗯嗯，这个程序可以运行，但是结果有点问题。这个问题不是结果不对，而是有点不尽如人意，如果把第18行的printf放到循环之外会好很多！先谢谢你帮我解答，而且答案也很好，可是我还是很想知道我的代码问题出在哪了。麻烦你再看一下我的菜鸟级程序，好不好？？[/quote] 我把你的程序直接粘贴在我的编译器里，是可以编译成功的，编译没有问题。是不是你其他地方弄错了

user: user-7
content: 问题到底出在哪。

user: user-4
content: 这改了么 ··改了又把新错误改出来了main() { int pass=0,fail=0; int n,i,term=0,score;     printf("please enter the students number"); scanf("%d",n);       //原来你这里都是&n  改了 你就把&吃了，怎么运行的了！ printf("please enter the score"); for(i=0;i<n;i++) { scanf("%d",&score);     if(score==-1)     { break; } term=term+score;     if(score>=60)    {  pass++;  }  else  { fail++; } printf("%d,%d,%d",pass,fail,term/n);    //你这个输出应该总的一个输出吧？ 应该放在循环外，按照题意，  看来不美怎么把循环弄懂还是怎么的兄弟，这个放在循环外，再试试     } }

user: user-8

user: user-0
content: 引用 12 楼 u011488256 的回复:LZ 解决问题了么   没全解决！！！！我还想知道我自己写的代码问题出在哪了！ 求大神不吝赐教！ 小弟不甚感激！！

user: user-0
content: 引用 5 楼 niu91 的回复:#include<stdio.h> void main() { 	int pass=0,fail=0; 	int n,i,term=0,score;  	printf("please enter the students number"); 	scanf("%d",&n);								//here  	 	for(i=0;i<n;i++) 	{ 		printf("please enter the score");		//提示输出 		scanf("%d",&score);     	if(-1 == score)							//这个错误很典型，最好改成 -1 == score 		{ 			break; 		}else{										//这里加上else会更好些  		term=term+score;							//term没有赋处值！ 		}  		//下面的语句要在for()里才能访问到每个输入时的score 		if(score>=60) 		{ 			 pass++; 		 } 		 else 		 { 			fail++; 		 } 	}  			  	  	 printf("通过人数 %d,未及格人数%d,平均分（取整）%d\n",pass,fail,term/n); }    嗯嗯，这个程序可以运行，但是结果有点问题。这个问题不是结果不对，而是有点不尽如人意，如果把第18行的printf放到循环之外会好很多！先谢谢你帮我解答，而且答案也很好，可是我还是很想知道我的代码问题出在哪了。麻烦你再看一下我的菜鸟级程序，好不好？？

user: user-4
content: LZ 解决问题了么

user: user-0
content: 引用 10 楼 maoshuoqiong 的回复:也许你想要的效果是这样的 #include <stdlib.h> #include <stdio.h> #include <string> #include <vector> #include <iostream> using namespace std;  int main() { 	int pass=0,fail=0; 	int n,i,term,score; 	term = 0; //初始化 	printf("please enter the students number:\n"); 	scanf("%d",&n); 	printf("Students[%d]\n",n); 	for(i=0;i<n;i++) 	{ 		printf("please enter the score:\n"); 		fflush(stdin); //清空输入流 		scanf("%d",&score); 		if( score == -1 ) //如果怕写错可以写成if(-1 == score) 		{ 			break; 		} 		term=term+score; 		if(score>=60) 		{ 			pass++; 		} 		else 		{ 			fail++; 		} 	}  	printf("pass[%d],fail[%d],avg[%d]\n",pass,fail,term/n); 	system("pause"); 	return 0; }  老兄我现在还只在学C，C++还没学。不过真的很谢谢你的帮忙！！！！！！！！！

user: user-9
content: 也许你想要的效果是这样的 #include <stdlib.h> #include <stdio.h> #include <string> #include <vector> #include <iostream> using namespace std;  int main() { 	int pass=0,fail=0; 	int n,i,term,score; 	term = 0; //初始化 	printf("please enter the students number:\n"); 	scanf("%d",&n); 	printf("Students[%d]\n",n); 	for(i=0;i<n;i++) 	{ 		printf("please enter the score:\n"); 		fflush(stdin); //清空输入流 		scanf("%d",&score); 		if( score == -1 ) //如果怕写错可以写成if(-1 == score) 		{ 			break; 		} 		term=term+score; 		if(score>=60) 		{ 			pass++; 		} 		else 		{ 			fail++; 		} 	}  	printf("pass[%d],fail[%d],avg[%d]\n",pass,fail,term/n); 	system("pause"); 	return 0; }

user: user-9
content: #include <stdlib.h> #include <stdio.h> #include <string> #include <vector> #include <iostream> using namespace std;   int main() { 	int pass=0,fail=0; 	int n,i,term,score; 	term = 0; //初始化 	printf("please enter the students number:\n"); 	scanf("%d",&n); 	for(i=0;i<n;i++) 	{ 		printf("please enter the score:\n"); 		scanf("%d",&score); 		if( score == -1 ) //如果怕写错可以写成if(-1 == score) 		{ 			break; 		} 		term=term+score; 		if(score>=60) 		{ 			pass++; 		} 		else 		{ 			fail++; 		} 		printf("%d,%d,%d",pass,fail,term/n); 	}  	 	system("pause"); 	return 0; }  可以编译运行