[水题]杭电1092,对比

来源:互联网 发布:电脑网络维修上门 编辑:程序博客网 时间:2024/04/30 04:03

今天做了1092,系统一直提示Time Limit Exceeded,调了半天代码,没用,最后找了别人AC过的代码,对比了一下。

#include <stdio.h>int main(){    int i,j,a[1000],t;    while(scanf("%d",&i)!=0)    {        t=0;                for (j=0;j<i;j++)        {               scanf("%d",&a[j]);            t=t+a[j];        }        printf ("%d\n",t);    }    return 0;}

这是WA的代码

#include <stdio.h>  int main(void)  {      int a, n, i, sum;      while(scanf("%d", &n) && n != 0)       // while(scanf("%d",&i)!=0)这个用法是错误的        {          sum = 0;          for(i = 0; i < n; i ++)          {              scanf("%d", &a);              sum = sum + a;          }          printf("%d\n", sum);      }      return 0;  }  

这是别人AC的代码
开始以为就是a[]的问题,认为是使用a[]造成时间超
真正的错误是个语法错误,while(scanf(“%d”,&i)!=0)这个用法是错误的,当值为0的时候,不能正常结束程序,导致时间超时!!!

0 0