萌新c语言

//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;
}

猜你喜欢

转载自blog.csdn.net/Perce_Issac/article/details/83029399
今日推荐