day1 hdoj 1089-1096题解

2017-11-26 19:06:38来源:cnblogs.com作者:隐秀人点击

分享

首先步入ACM的学习,不得不强烈推荐一套视频

https://space.bilibili.com/3071253#!

这位up主的视频很符合我这种

没学过c++,c语言数组还不很懂,hdoj按顺序刷的想骂人的菜鸡

首先基本输入输出格式 即1089-1096题

下面给出代码,原题请自己搜索

1089

#include<stdio.h>int main(){    int a,b;    while(scanf("%d%d",&a,&b)!=EOF)    printf("%d/n",a+b);      return 0;}

这是最基本的a+b问题

唯一巧妙的地方是

    while(scanf("%d%d",&a,&b)!=EOF)

EOF 为 end of file

通俗的讲,这段代码的含义即

可以一直输入a和b的值不会停止

如果是一般的

scanf("%d%d",&a,&b);

计算一次a+b的值后程序就会终止

1090

#include<stdio.h>int main(){    int a,b,n;    scanf("%d",&n);        while(n>0)    {        n--;        scanf("%d%d",&a,&b);        printf("%d/n",a+b);    }    return 0;}

这道题的特别之处是你可以先输入一个数n,用来控制可以输入的组数

此处特征代码为

while(n>0)    {        n--;   }

请根据视频自行理解

1091

#include<stdio.h>int main(){    int a,b;    while(scanf("%d%d",&a,&b)!=EOF)    {        if(a==0&&b==0) break;        printf("%d/n",a+b);    }    return 0;}

此题特殊之处为

如果输入0,程序终止

代码中break以为跳出while循环到return 0;  即程序终止

1092

#include<stdio.h>int main(){    int a,n;    while(scanf("%d",&n)!=EOF)    {        if (n==0)break;int sum=0;         //特别注意sum赋值0的位置        while(n>0)            {n--;            scanf("%d",&a);            sum+=a;            }        printf("%d/n",sum);    }    return 0;}

此题特殊之处为

规定了每组输入数字的个数

与1090题原理相同

1093

#include<stdio.h>int main(){    int a,n,i;    scanf("%d",&i);    while(i>0)    {        i--;    scanf("%d",&n);    {        if(n==0) break;        int sum=0;        while(n>0)            {n--;            scanf("%d",&a);            sum+=a;            }        printf("%d/n",sum);    }    }    return 0;}

1090和1092综合

既规定组数,又规定每组中数字的个数

用两次while即可

1094

#include<stdio.h>int main(){    int a,n;    while(scanf("%d",&n)!=EOF)    {        int sum=0;        while(n--){        scanf("%d",&a);        sum+=a;        }        printf("%d/n",sum);    }    return 0;}

仅给出AC代码

1095

#include<stdio.h>int main(){    int a,b;    while(scanf("%d%d",&a,&b)!=EOF)    printf("%d/n/n",a+b);    return 0;}

隔一行输出

同样仅给出AC代码

1096

#include<stdio.h>int main(){    int n,i,a;    scanf("%d",&n);    while(n--)    {        scanf("%d",&i);        int sum=0;        while(i--)        {            scanf("%d",&a);            sum+=a;        }        if(n>0)        printf("%d/n/n",sum);        else        printf("%d/n",sum);    }    return 0;}

以上综合

这里需要注意,第一次直接打出printf("%d/n/n",sum);时出现PE

可能是以/n/n作为最后结尾格式错误

如不确定情况下,建议使用1096的输出代码

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台