problema de puntuación de bolos

problema de puntuación de bolos


  1. Título Descripción
    Número de Bowling en el juego de bolos, derriba todos los conocidos calcula en un juego en la puntuación de una persona, para calcular la puntuación acumulativa después de cada ronda y la puntuación de cada ronda.
    Bowling torneo un total de 10 entradas, antes de las nueve en cada ronda hasta dos veces al rollo de la pelota; la décima ronda puede rodar la bola dos o tres veces. La puntuación es redonda
    (1) si el primero hacia abajo todo balón 10 bolos, llamado Strike (huelga), que es una puntuación igual al número de 10 más dos abajo bolos .
    (2) Si una bola de dos golpes en los 10 bolos, llamado de repuesto (éxito), entonces esta partitura y vuelta es igual al número total de la actual ronda de bolos por nocaut.
    (3) Si el número de la bola redonda de dos bolos abajo de un total de menos de 10, llamado normal (normal), entonces esta puntuación ronda igual al número de la actual ronda de bolos por nocaut.
    20 pide un número entero no mayor que 10, indica el número de entradas por abajo bola redonda, y, finalmente, la salida de la puntuación de esta placa, y la Oficina de cada rueda.


Algoritmo de análisis :
  esta pregunta puede circular para rondas obtienen puntuaciones de forma secuencial en cada ronda de un juego. En cada ronda se obtiene si los primeros 10 minutos, a continuación, las siguientes dos fracciones de las mismas puntuaciones de bola asociado no salir si los primeros 10 minutos, los dos rodillos-score si la suma no es 10, entonces dos puntuación ronda rollo es la suma de las puntuaciones obtenidas, de lo contrario, la puntuación ronda actual relacionado con la siguiente puntuación ronda. Debido a su puntuación de ronda es huelga, estado libre o normal, y por lo tanto, se almacenan las variables requeridas. Y debido a que uno de su único anotar más puntos después de dos rondas, y por lo tanto sólo dos variables para almacenar el estado de las dos primeras rondas de la ronda actual puede ser.
  Así, cada cálculo de la puntuación de la rueda es determinar las puntuaciones primera y segunda redondas y estatus temporal, y luego de la tercera rueda empieza secuencialmente calcula un puntuaciones del estado temporales y las puntuaciones de las dos primeras rondas de la ronda y ronda, por supuesto, si la actual ronda de estado es nomal, se puede obtener la puntuación de inmediato, anotando las dos primeras rondas también se pueden determinar.
El primer 10, porque se puede hacer rodar la pelota tres veces, por lo que la puntuación de los primeros 10 puntos si fuera la primera vez, o un total de 10 puntos en dos ocasiones, el resultado final es la suma de las tres puntuaciones, o las puntuaciones de la puntuación final es de dos y.


#include<stdio.h>
#include<math.h>
int main(){
	//定义三种状态 
	const int normal=1;
	const int spare=2;
	const int strike=3;
	int game[10]={0};//数组存储各轮得分 
	int state1=0,state2=0;//上两轮的状态 
	int i,score,state;//i为循环变量,score存储当前得分,state为本轮状态 
	int totalscore=0;//总得分 
	for(i=0;i<10;i++){//计算每轮得分 
		scanf("%d",&score);//第一轮击球分数 
		if(score<0&&score>10){
			return;
		}
		game[i]=score;//存储进数组 
		if(state2==strike&&state1==strike){//如果上两轮状态都为“strike” 
			game[i-2]=game[i-2]+score;// 求上两轮的得分 
		}
		if(state1>=spare){
			game[i-1]=game[i-1]+score;
				
		}
		if(score==10){
			state=strike;
			
		}
		else{
			scanf("%d",&score);
			if(score<0&&score>10){
				return;
			}
			game[i]=game[i]+score;
			if(game[i]==10){
				state=spare;
			}else{
				state=normal;
			}
			if(state1==strike){
				game[i-1]=game[i-1]+score;
				
			}
			state2=state1;
			state1=state;
		}
	}
		if(state1==spare){
			scanf("%d",&score);
			if(score<0&&score>10){
				return;
			}
			game[9]=game[9]+score;
		}
		else if(state1==strike){
			scanf("%d",&score);
			if(score<0&&score>10){
				return;
			}
			game[9]=game[9]+score;
			if(state2==strike){
				game[8]=game[8]+score;
			}
			scanf("%d",&score);
			if(score<0&&score>10){
				return;
			}
			game[9]=game[9]+score;
		}
		for(i=0;i<10;i++){
			printf("%d\t",game[i]);
			totalscore+=game[i];
		}
	printf("%d\n",totalscore);
	return 0;

Los resultados operativos

Publicado 32 artículos originales · ganado elogios 32 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/Evan_love/article/details/88196059
Recomendado
Clasificación