大佬们,帮忙看看有什么优化方法,敲的时候一直改越堆越长
查看原帖
大佬们,帮忙看看有什么优化方法,敲的时候一直改越堆越长
1497128
hejh_楼主2025/1/5 15:56
#include<stdio.h>
#include<ctype.h>
int main() {
	char a[14];
	int b[10] = { 0 };
	fgets(a, sizeof(a),stdin);
	int number = 0;
	for (int i = 0; a[i] != '\0'; i++) {
		if (isdigit(a[i])) {
			b[number] = a[i] - '0';
			number++;
		}
		if (a[i] == 'X') {
			b[number] = 'X';
			number++;
		}
	}
	//求出判定值
	int sum = 0;
	for (int i = 0; i < 9; i++) {
		sum += (i + 1) * b[i];
	}
	//判断对错
	int is = 0;
	if (sum % 11 == 10) {
		if (b[9] == 'X') {
			printf("Right");
			is = 1;
		}
	}else if (b[9] == sum % 11) {
		printf("Right");
		is = 1;
	}
	if (is == 0) {
		if (sum % 11 == 10) {
			b[9] = 'X';
		}
		else {
			b[9] = sum % 11;
		}
		int s = 1;
		for (int i = 0; i < 10; i++) {
			if (sum % 11 == 10) {
				if (i < 9) {
					printf("%d", b[i]);
					s++;
				}
				else {
					printf("%c", b[i]);
					s++;
				}
			}
			else {
				printf("%d", b[i]);
				s++;
			}
			if (s == 2 || s == 6 || s == 12) {
				printf("-");
				s++;
			}
		}
	}
	
	return 0;
}

2025/1/5 15:56
加载中...