day1 hdoj 1089-1096题解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day1 hdoj 1089-1096题解相关的知识,希望对你有一定的参考价值。
首先步入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题解的主要内容,如果未能解决你的问题,请参考以下文章