C++请教!运行正确,ACM提示wrong answer

#include <iostream>
#include <iomanip>
using namespace std;
struct Student
{
int num;
char name[20];
char classname[20];
float score[3];
float aver_score;
} s[150];

void Input (int n)
{
for (int i=0;i<n;i++)
{
cin>>s[i].num>>s[i].classname>>s[i].name;
cin>>s[i].score[0]>>s[i].score[1]>>s[i].score[2];
}
}

void average (int n)
{
for (int i=0;i<n;i++)
s[i].aver_score=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3;
}

int highest (int n)
{
int k=0,t;
for (int i=0;i<n;i++)
{
if (s[i].aver_score>=k)
{k=s[i].aver_score;t=i;}
}
return t;
}

int main ()
{
int n,k,i;
cin>>n;
Input(n);
average (n);
for (i=0;i<n;i++)
cout<<s[i].name<<'\0'<<setiosflags(ios::fixed)<<setprecision(1)<<s[i].aver_score<<endl;
k=highest(n);
cout<<s[k].num<<'\0'<<s[k].classname<<'\0'<<s[k].name<<'\0'<<setiosflags(ios::fixed)<<setprecision(1)<<s[k].score[0]<<'\0'<<s[k].score[1]<<'\0'<<s[k].score[2]<<'\0'<<s[k].aver_score<<endl;
return 0;
}
忘了说题目~
有N个学生,每个学生的数据包括学号、班级、姓名、三门课成绩。从键盘输入N个学生数据,要求打印出每个学生三门课的平均成绩,以及平均分为最高的学生数据信息(包括学号、班级、姓名、三门课成绩,平均分)。
要求:
1、 定义学生结构体。
2、 用一个函数实现5个学生数据的输入,用另一个函数负责求每个学生三门课程的平均成绩,再用一个函数求出平均分最高的学生并输出该学生的数据。要求平均分和平均分最高的学生数据都在主函数中输出。
3、结构体数组的长度不小于100,不大于1000

你的算法错误,在大量的数据测试下,得到的结果并不是全都正确,所以出现WRONG ANSWER,没有题目,也查不出错,可能是哪里边界条件没控制好。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-04-25
acm好像只让有一个main函数,不让有其他多余的函数。
第2个回答  2009-04-25
无题目??

C++请教!运行正确,ACM提示wrong answer
你的算法错误,在大量的数据测试下,得到的结果并不是全都正确,所以出现WRONG ANSWER,没有题目,也查不出错,可能是哪里边界条件没控制好。

为什么我写的程序acm中显示是wrong answer?? 急需高人指点
你用的是c语言,最好不要在半路定义变量,那是c++的写法 第一题你的测试数据都没过怎么能交呢?\/ if(a[i]<0){ d=-a[i];} else d=a[j]; \/\/你的这里错了,应该是a[i]\/ include<stdio.h> include <math.h> int main(){ int n,i,j;int a[100],d,b,c;while(scanf("%d"...

...我自己运行起来都是对的。。。为什么交上去就是WRONG ANSWER...
比如: 3 2 2 2 时输出实际上是 27,而不是 17。。你只需要在任意一个else里的 '<' 或 '>' 改成 '<=' 或 '>=' 即可 还有一点我想说,你的代码有点杂乱,我指的是功能性不那么一目了然,建议功能性函数独立在main外面,我使用C++,大同小异,代码如下:include<iostream> using names...

...acm 的题提交会总显示 WrongAnswer 是怎么回事啊?
尝试去掉 fflush(stdin);因为在VC中,你是从键盘一行一行输入。输入一行之后在输入下一行之前,计算机把键盘换从去清除是没有问题的。计算机运行很快,你的下一行输入会再上一行处理完之后一段时间才会被送入计算机,清除输入设备没有问题。但在ACM中,它的输入一般是通过重定向,从文件中输入的,你清除...

ACM1002为什么我的答案总是说Wrong Answer,可是我运行结果都没有错...
有什么问题没有考虑到吧,比如有前导0什么的,再比如99999 1这个用例你的代码就得到了错误的结果。

acm老是 wrong answer怎么办啊
include<iostream.h> int main(){ int n;cin>>n;if(n==(n\/100)*(n\/100)*(n\/100)+(n%100\/10)*(n%100\/10)*(n%100\/10)+(n%10)*(n%10)*(n%10))cout<<"yes" << endl;else cout<<"no" << endl;} 一定要注意字母的大小写,还有行末的回车符 另外,虚机团上产品团购,...

...里老是说输出的东西太多,或者直接说wrong answer?
。。。你一定要按格式输出。。。不要输出多余的 please input 这种东西。。。而且你电脑上只是运行了一小部分样例。。检测的时候会有很多样例 和 标程算出的答案对比的

一道acm题目 报错是wrong answer 求大神找错
最明显的错误,就是 No carry operation.这些最后面都有一个句号。。你的输出没有。这题是算有多少次进位吧,你是模拟加法运算,if(maxs[max-1]+mins[min-1]>=106||maxs[max-1]>=58) 这些别人只能猜出来是什么意思,maxs[max-2]++;这个百分百溢出 。当max = 1的时候 ,即原来的长度...

赛码ACM编程一直是WRONG ANSWER
比如:2 6 3 -4 3 -1 3 -7 6 3 -1 2 -9 4 10 答案应该是:Case 1:5 3 5 Case 2:14 5 6 另外,你的输出格式也不对,每组数据答案后面多了一个空格,而且每两组答案之间也没有空行。这题就是动态规划的经典例题:最大子段和,你可以去查下相关资料。

杭电acm 2027,我自己运行通过了,可是却是Wrong answer
法一:include<stdio.h> include<string.h> include<stdlib.h> int main(){ int i,t,n=1;char str[100];char tabstr[]="aeiou";int tab[300];scanf("%d%*c",&t);while(t--){ gets(str);memset(tab,0,sizeof(tab));for(i=0;str[i];i++)tab[str[i]]++;if(n++!=1) ...

相似回答
大家正在搜