码迷,mamicode.com
首页 > 其他好文 > 详细

day1 hdoj 1089-1096题解

时间:2017-11-26 14:05:19      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:自己   计算   问题   就会   题解   lib   特殊   使用   需要   

首先步入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的输出代码

 

day1 hdoj 1089-1096题解

标签:自己   计算   问题   就会   题解   lib   特殊   使用   需要   

原文地址:http://www.cnblogs.com/henuzyx/p/hdoj1089-1096.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!