第一阶段:入门(20211121)
- 写在前面
- 一、输入输出练习
- 1000 A+B Problem
- 1089 A+B Input-Output Pratice (I)
- 1090 A+B for Input-Output Practice (II)
- 1091 A+B for Input-Output Practice (III) (!)
- 1092 A+B for Input-Output Practice (IV)
- 1093 A+B for Input-Output Practice (V)
- 1094 A+B for Input-Output Practice (VI)(!)
- 1095 A+B for Input-Output Practice (VII)
- 1096 A+B for Input-Output Practice (VIII)
- 1001 Sum Problem
写在前面
网址:http://acm.hdu.edu.cn
https://blog.youkuaiyun.com/qq_38769551/article/details/101510000
一、输入输出练习
1000 A+B Problem
计算多次A+B,并输出结果
#include<iostream>
using namespace std;
int main(){
int A,B;
while(cin>>A>>B)
cout<<A+B<<endl;
return 0;
}
1089 A+B Input-Output Pratice (I)
#include<iostream>
using namespace std;
int main(){
int a,b;
while(cin>>a>>b){
cout<<a+b<<endl;
}
return 0;
}
1090 A+B for Input-Output Practice (II)
#include<iostream>
using namespace std;
int main(){
int n,a,b;
cin>>n;
for(int i=0;i<n;i++){
cin>>a>>b;
cout<<a+b<<endl;
}
return 0;
}
1091 A+B for Input-Output Practice (III) (!)
#include<iostream>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
while(a!=0 && b!=0){
cout<<a+b<<endl;
cin>>a>>b;
}
return 0;
}
一下来自https://blog.youkuaiyun.com/weixin_42673018/article/details/89293074
避免上面那个,干脆
#include<iostream>
using namespace std;
int main(){
int a,b;
while(cin>>a>>b){
if(a==0 && b==0) break;
cout<<a+b<<endl;
}
return 0;
}
1092 A+B for Input-Output Practice (IV)
#include<iostream>
using namespace std;
int main(){
int a,n;
while(cin>>n){
if(n==0) break;
int sum=0;
for(int i=0;i<n;i++){
cin>>a;
sum+=a;
}
cout<<sum<<endl;
}
return 0;
}
1093 A+B for Input-Output Practice (V)
#include<iostream>
using namespace std;
int main(){
int a,n,m,sum;
cin>>n;
for(int i=0;i<n;i++){
cin>>m;
sum=0;
for(int j=0;j<m;j++){
cin>>a;
sum+=a;
}
cout<<sum<<endl;
}
return 0;
}
1094 A+B for Input-Output Practice (VI)(!)
但其实不用输入换行即停止程序运行结束
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int a,sum,n;
while(cin>>n){
sum=0;
for(int i=0;i<n;i++){
cin>>a;
sum+=a;
}
cout<<sum<<endl;
}
return 0;
}
判断输入是否为换行符,是则程序运行结束
#include<iostream>
using namespace std;
int main(){
int a,n,sum;
char c;
while(c=cin.get()){
if(c=='\n') break;
n=c-'0';
sum=0;
for(int i=0;i<n;i++){
cin>>a;
sum+=a;
}
cout<<sum<<endl;
cin.get();
}
return 0;
}
cin会忽略空格和回车
判断输入是否为回车
cin.get()读取单个字符
当输入"3 1 2 3"并按下回车时
然后再执行
所以最后输出的会是:
原因:http://c.biancheng.net/view/1346.html
使用cin.get()接收输入的换行后
换行符写错了,应该是‘\n’
C语言的getchar()
http://c.biancheng.net/cpp/html/259.html
getch()不是stdio库中的函数
1095 A+B for Input-Output Practice (VII)
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int a,b;
while(cin>>a>>b){
cout<<a+b<<endl<<endl;
}
return 0;
}
居然不用输入为回车时结束程序的运行。看来上一个也不用
按照上题逻辑“Wrong Answer”
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int a,b;
char c;
while((c=getchar())!='\n'){
a=c-'0';
cin>>b;
cout<<a+b<<endl<<endl;
getchar();
}
return 0;
}
1096 A+B for Input-Output Practice (VIII)
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int N,M,a,sum;
cin>>N;
for(int i=0;i<N;i++){
cin>>M;
sum=0;
for(int j=0;j<M;j++){
cin>>a;
sum+=a;
}
cout<<sum<<endl;
if(i!=N-1)
cout<<endl;
}
return 0;
}
1001 Sum Problem
输入一个数
输出一个数
输出一个空行
循环
#include<iostream>
using namespace std;
int main(){
int n;
while(cin>>n){
int sum=0;
for(int i=1;i<=n;i++){
sum+=i;
}
cout<<sum<<endl<<endl;
}
return 0;
}
(2021年11月22日截)