杭电 2004 ,为什么用C++的那个能显示超时,而用C的那个却不会,求指导
杭电 2004 ,为什么用C++的那个会显示超时,而用C的那个却不会,求指导
输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:
90~100为A;
80~89为B;
70~79为C;
60~69为D;
0~59为E;
Input
输入数据有多组,每组占一行,由一个整数组成。
Output
对于每组输入数据,输出一行。如果输入数据不在0~100范围内,请输出一行:“Score is error!”。
Sample Input
56
67
100
123
Sample Output
E
D
A
Score is error!
代码:
(一)---(C++):
#include<iostream>
using namespace std;
int main()
{
int i,num;
cin>>num;
while(num)
{
if(num<0 || num>100)
cout<<"Score is error!"<<endl;
else
{
i=num/10;
switch(i)
{
case 9:
case 10:
cout<<"A"<<endl; break;
case 8:
cout<<"B"<<endl; break;
case 7:
cout<<"C"<<endl; break;
case 6:
cout<<"D"<<endl; break;
default:
cout<<"E"<<endl; break;
}
}
cin>>num;
}
system("pause");
return 0;
}
(二)---(C):
#include <stdio.h>
int main()
{
int num, i;
while(scanf("%d", &num) != EOF)
{
if(num < 0 || num >100)
printf("Score is error!\n");
else
{
i = num / 10;
switch(i)
{
case 9:
case 10: printf("A\n"); break;
case 8: printf("B\n"); break;
case 7: printf("C\n"); break;
case 6: printf("D\n"); break;
default: printf("E\n"); break;
}
}
}
return 0;
}
------解决方案--------------------
第一个有这句:system("pause");
你不按键它就不会退出,直到超时。
第二个运行显示完就退出程序,没这个问题了。
------解决方案--------------------
输入数字没有问题,如果输入非整形的话,cin流的状态 会被破坏,无法继续输入,可以用cin.clear清一下流的状态,或是把输入的部分放入while里(while(cin>>num)) 输入错误时直接退出
------解决方案--------------------
话说这个超时怎么算的?有键盘录入的简单程序要超也该是录入时间超了吧?
输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:
90~100为A;
80~89为B;
70~79为C;
60~69为D;
0~59为E;
Input
输入数据有多组,每组占一行,由一个整数组成。
Output
对于每组输入数据,输出一行。如果输入数据不在0~100范围内,请输出一行:“Score is error!”。
Sample Input
56
67
100
123
Sample Output
E
D
A
Score is error!
代码:
(一)---(C++):
#include<iostream>
using namespace std;
int main()
{
int i,num;
cin>>num;
while(num)
{
if(num<0 || num>100)
cout<<"Score is error!"<<endl;
else
{
i=num/10;
switch(i)
{
case 9:
case 10:
cout<<"A"<<endl; break;
case 8:
cout<<"B"<<endl; break;
case 7:
cout<<"C"<<endl; break;
case 6:
cout<<"D"<<endl; break;
default:
cout<<"E"<<endl; break;
}
}
cin>>num;
}
system("pause");
return 0;
}
(二)---(C):
#include <stdio.h>
int main()
{
int num, i;
while(scanf("%d", &num) != EOF)
{
if(num < 0 || num >100)
printf("Score is error!\n");
else
{
i = num / 10;
switch(i)
{
case 9:
case 10: printf("A\n"); break;
case 8: printf("B\n"); break;
case 7: printf("C\n"); break;
case 6: printf("D\n"); break;
default: printf("E\n"); break;
}
}
}
return 0;
}
------解决方案--------------------
第一个有这句:system("pause");
你不按键它就不会退出,直到超时。
第二个运行显示完就退出程序,没这个问题了。
------解决方案--------------------
输入数字没有问题,如果输入非整形的话,cin流的状态 会被破坏,无法继续输入,可以用cin.clear清一下流的状态,或是把输入的部分放入while里(while(cin>>num)) 输入错误时直接退出
------解决方案--------------------
话说这个超时怎么算的?有键盘录入的简单程序要超也该是录入时间超了吧?