C语言—— 菜鸟求助!!!!!!!!!!!!!!
#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 时出错.
[解决办法]
#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;
}
可以编译运行
[解决办法]
也许你想要的效果是这样的
#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;
}
[解决办法]

[解决办法]
syntax error 为语法错误,编译竟然没有找出来,可以通过设置断点打印,锁定出错地点。
[解决办法]
先写一个比较小的程序(当然要保证正确),运行一下,看看行不行。
[解决办法]
同学! 如果你想知道你错哪了 首先你应该把你程序最基本的错误改过来,实在太多,改过来在运行看还有没有错误,你这些基本的错误也许就为导致你上面的错误,下面我再你程序里面注释中给你提出来,然后你自己改改
#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=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);
}
[解决办法]
楼主的代码让人抓狂,建义不要写这样的格式成长。不然别人会找你要精神损失费的。要养成了的风格。
[解决办法]
这改了么 改了又把新错误改出来了
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); //你这个输出应该总的一个输出吧? 应该放在循环外,按照题意, 看来不美怎么把循环弄懂还是怎么的兄弟,这个放在循环外,再试试
}
}