//1
#include<iostream>
using namespace std;
int main() {
int a, b, c, d;
while (cin >> a >> b >> c >> d) {
float s = sqrt(pow(a - c, 2) + pow(b - d, 2));
printf("%.2f\n", s);
}
return 0;
}
//3
#include<iostream>
const double PI = 3.141596535;
using namespace std;
int main() {
double r;
while (cin >>r) {
double v;
v = pow(r, 3)*PI * 4.0 / 3.0;
printf("%.3f\n", v);
}
return 0;
}
失误把r 定义成 int ,输入一个小数可以输出但是直接结束程序,应该与将 double 数据 赋值给 int 变量的过程有关
年份那道题,我觉得字符串的写法情况有点多
#include<iostream>
#include<string>
const double PI = 3.141596535;
using namespace std;
int main() {
string g;
while (cin >>g) {
int ye, mo, da;
ye = g[0] * 1000 + g[1] * 100 + g[2] + 10 + g[3];
if (g[6] = '/') {
mo = g[5];
if
}
else {
mo = g[5] * 10 + g[6];
}
da = g[8] * 10 + g[9];
int num[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
if ((ye % 4 == 0&&ye%100!=0) || ye / 400 == 0) {
num[1]++;
}
int sum = 0;
for (int i = 0; i < mo - 1; i++) {
sum += num[i];
}
sum += da;
cout << sum << endl;
}
return 0;
}
wrong answer
#include<iostream>
#include<string>
using namespace std;
int main() {
int ye, mo, da;
char z;
while (scanf("%d%c%d%c%d",&ye,&z,&mo,&z,&da)!=EOF) {
int num[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
if ((ye % 4 == 0&&ye%100!=0) || ye / 400 == 0) {
num[1]++;
}
int sum = 0;
for (int i = 0; i < mo - 1; i++) {
sum += num[i];
}
sum += da;
cout << sum << endl;
}
return 0;
}
//WA
#include<iostream>
const double PI = 3.1415926535;
int main() {
double r;
while (scanf("%lf",&r)!=EOF) {
if (r < 0) {
continue;
}
double v;
v = pow(r, 3)*PI * 4.0 / 3.0;
printf("%.3f\n", v);
}
return 0;
}
对 double 类型进行输入需要用 scanf("%lf",&a);
#include<iostream>
const double PI = 3.1415927;
int main() {
double r;
while (scanf("%lf", &r) != EOF) {
double v;
v = pow(r, 3)*PI * 4.0 / 3.0;
printf("%.3f\n", v);
}
return 0;
}
//用题目给的常数,对错误输入不必判断
#include<iostream>
#include<string>
using namespace std;
int main() {
int ye, mo, da;
char z;
while (scanf("%d%z%d%z%d",&ye,&z,&mo,&z,&da)!=EOF) {
if (mo > 12 || da > 31) {
continue;
}
int num[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
if ((ye % 4 == 0 && ye % 100 != 0) || ye / 400 == 0) {
num[1]++;
}
int sum = 0;
for (int i = 0; i < mo - 1; i++) {
sum += num[i];
}
sum += da;
cout << sum << endl;
}
return 0;
}
//WA
#include<iostream>
using namespace std;
int main() {
int ye, mo, da;
char z;
while (cin>>ye>>z>>mo>>z>>da) {
int num[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
if ((ye % 4 == 0 && ye % 100 != 0) || ye / 400 == 0) {
num[1]++;
}
int sum = 0;
for (int i = 0; i < mo - 1; i++) {
sum += num[i];
}
sum += da;
printf("%d\n", sum);
//scanf("%d%z%d%z%d", &ye, &z, &mo, &z, &da) != EOF
}
return 0;
}
#include<iostream>
int main() {
long long be, en;
while (scanf("%lld %lld", &be, &en) == 2) {
if (be > en) {
continue;
}
long long sum1, sum2;
sum2 = 0;
sum1 = 0;
for (int i = be; i <= en; i++) {
if (i % 2 == 0) {
sum1 += i*i;
}
else {
sum2 += i*i*i;
}
}
printf("%lld %lld\n", sum1, sum2);
}
return 0;
}
//好多数据输入都能找到素数
#include<iostream>
int main() {
int n, be, en;
while (scanf("%d %d", &be, &en) != EOF) {
if (be == 0 && en == 0) {
return 0;
}
int ans;
int key = 0;
for (int i = be; i <= en; i++) {
n = i;
ans = n * n + n + 41;
if (ans == 2 || ans == 3) {
key++;
}
if (ans % 6 == 1 || ans % 6 == 5) {
key++;
int m = sqrt(ans);//是否需要double
for (int i = 5; i < m; i++) {
if (ans%i == 0 || ans % (i + 2) == 0||ans==1) {
key--;
}
}
}
}
if (key == en-be+1) {
printf("OK\n");
}
else{
printf("Sorry\n");
}
}
return 0;
}
#include<iostream>
int main() {
float n;
while (scanf("%f", &n) != EOF) {
int*g = new int[n];
int max = 0;
int min = 100;
for (int i = 0; i < n; i++) {
scanf("%d", &g[i]);
if (g[i] > max) {
max = g[i];
}
if(g[i] < min) {
min = g[i];
}
}
int sum = 0;
for (int i = 0; i < n; i++) {
sum += g[i];
}
double ans = (sum - max - min) / (n - 2);//如果前面n定义的是int,则这里的ans也会转换成int
printf("%.2f\n", ans);
}
return 0;
}
#include<iostream>
int main() {
int n,m;
while (scanf("%d%d",&n,&m) != EOF) {
int num = 2;
int key = 0;
int sum = 0;
int last = n % m;
for (int i = 0; i < n; i++) {
num = 2 + 2 * i;
sum += num;
key++;
if (key%m == 0) {
if (i == n - 1)
printf("%d", sum / m);
else
printf("%d ", sum / m);
num = 2 + 2 * i;
key = 0;
sum = 0;
}
if (last != 0) {
if (i == n - last - 1) {
for (int j = 0; j < last; j++) {
num = 2 + 2 * i + 2 * (j + 1);
sum += num;
}
printf("%d", sum / last);
break;
}
}
}
}
return 0;
}
一开始出现“除零错误”:Runtime Error(INTEGER_DIVIDE_BY_ZERO) ,发现是没注意 last 可能为0的情况,之后又出现了Presentation Error ,似乎是格式问题,发现是忘记换行
#include<iostream>
int main() {
int n;
while (scanf("%d",&n) != EOF) {
if (n == 0) {
break;
}
int min = 100;
int key;
int*g = new int[n];
for (int i = 0; i < n; i++) {
scanf("%d", &g[i]);
if (g[i] < min) {
min = g[i];
key = i;
}
}
int t;
t = min;
g[key] = g[0];
g[0] = t;
for (int i = 0; i < n; i++) {
if (i == n - 1) {
printf("%d\n", g[i]);
}else
printf("%d ", g[i]);//这里最后一个数据后没有空格,只有换行符
}
}
return 0;
}