1.A + B问题
#include<iostream>
using namespace std;
int main() {int a, b;while (cin >> a >> b) cout << a + b << endl;
}
while循环什么时候停止?
2.A + B问题||
#include<iostream>
using namespace std;
int main() {int n, a, b;while (cin >> n) {while(n--){cin >> a >> b;cout << a + b << endl;}}
}
外层while循环什么时候停止?
3.A + B|||
#include<iostream>
using namespace std;
int main() {int a, b;while(cin >> a >> b){if(a == 0 && b == 0) break;cout << a + b << endl;}
}
学会break的使用时机
4.A + B|V
#include<iostream>
using namespace std;
int main() {int n, a;while(cin >> n){if(n == 0) break;int sum = 0;while(n--){cin >> a;sum += a;}cout << sum << endl;}
}
5.A + B问题V||
#include<iostream>
using namespace std;
int main() {int n, a;while(cin >> n){if(n == 0) break;int sum = 0;while(n--){cin >> a;sum += a;}cout << sum << endl;}
}
多一个endl就可以额外输出一个空行
6.A+ B问题V|||
#include<iostream>
using namespace std;
int main() {int n, m, a;while(cin >> n){while(n--){cin >> m;int sum = 0;while(m--){cin >> a;sum += a;}cout << sum << endl;if(n != 0) cout << endl;}}
}
需要多输出换行符,且右多组计算数据,但每大组之间又不需要换行符
7.平均绩点
#include <iostream>
#include <stdio.h>
using namespace std;
int main() {string s;while (getline(cin, s)){ //接受一整行字符串float sum = 0;int count = 0;int flag = 1;for(int i = 0; i < s.size(); i++){if(s[i] == 'A') {sum += 4; count++;}else if(s[i] == 'B') {sum += 3; count++;}else if(s[i] == 'C') {sum += 2; count++;}else if(s[i] == 'D') {sum += 1; count++;}else if(s[i] == 'F') {sum += 0; count++;}else if(s[i] == ' ') continue;else{flag = 0;cout << "Unknown" << endl;break;}}if(flag == 1) printf("%.2f\n", sum / count);}return 0;
}
1.getline函数格式,直到读入一个换行符时停止,可接受一整行的换行符
2.s字符串可以直接进行下标访问
3.“ ”引用字符串。‘’引用char类型的字符
4.cout和printf的区别:前者自动输出换行符,后者要自己输出“\n”
5.对输出小数格式的控制
8.摆平积木
思路还是挺好想的,大差不差
#include<iostream>
#include<vector>
using namespace std;
int main() {int n;while(cin >> n){if(n == 0) break; //这里必须要有break,不然就会错vector<int> nums(n, 0);int sum = 0;for(int i = 0; i < n; i++){cin >> nums[i];sum += nums[i];}int average = sum / n;int move = 0;for(int i = 0; i < n; i++){if(nums[i] > average) move += nums[i] - average;}cout << move << endl;cout << endl;}
}
那个break出去是啥意思?因为题目说了:当n=0时,输入结束。
为什么这个while循环是必要的?不能直接cin>>n吗?但好像确实所有题在输入时都用了while循环。
9.奇怪的信
就是取出每一位数并进行判断,比较简单,还是注意上面那道题说的cin时要有while循环
#include<iostream>
using namespace std;
int main() {int n;while(cin >> n){int sum = 0;while(n){int num = n % 10;if(num % 2 == 0) sum += num;n = n / 10;}cout << sum << endl << endl;}
}
10.运营商活动