Procesamiento de datos de entrada en modo ACM (C/C++)

Referencias

Declaración de derechos de autor: este artículo es un artículo original del bloguero de CSDN "Yu Zhe-He Lijian", que sigue el acuerdo de derechos de autor CC 4.0 BY-SA. Adjunte el enlace de la fuente original y esta declaración para su reimpresión.
Enlace original: https://blog.csdn.net/sxhelijian/article/details/8978850


1.1 La entrada más simple

Ejemplo 1:

Description
计算 a+b

Input
两个整数 a,b

Output
a+b的值


Sample Input
1 2

Sample Output
3

Esta entrada más simple acepta un conjunto de entradas y calcula un valor para este conjunto de entradas. Esto no es diferente de la programación habitual. La solucion es:

#include <stdio.h>
int main()
{
    
    
    int a,b;
    scanf("%d %d",&a, &b);
    printf("%d\n",a+b);  //对其他题目,换成要求的复杂处理与输出
    return 0;
}

1.2 Una ejecución, para ingresar múltiples conjuntos de datos, hasta que se lea el final del archivo de entrada (EOF)

Ejemplo 2:

Description
计算 a + b

Input
多组由两个整数(a和b)构成的输入,a和b之间用空格隔开,每组输入单独占一行 

Output
每组的两个整数(a和b)求和并输出,每组的求和结果独占一行

Sample Input
1 5
10 20
400 516

Sample Output
6
30
916

Este tipo de entrada contiene múltiples pares de datos de entrada y necesita construir un bucle para leer. Debido a que no hay indicación de cuántos pares de entrada hay, debe haber una manera de saber cuándo ha terminado la entrada. La solucion es:

#include <stdio.h>
int main() 
{
    
    
	int a,b;
	while(scanf("%d %d",&a, &b) != EOF) // 输入结束时,scanf函数返回值为EOF(-1),即没有数据输入时会退出while循环
	{
    
    
		printf("%d\n",a+b);
	}
	return 0; 
}

Nota 1: El valor de retorno de la función scanf es el número de variables leídas, si no hay ninguna, el valor de retorno es -1. EOF es una constante predefinida igual a -1.

Nota 2: al depurar el programa, la entrada de datos por teclado, use la combinación de CTRL-Z (es decir, mantenga presionada la tecla CTRL y luego presione Z) como el extremo de entrada, que se denomina "fin de archivo " del dispositivo de entrada de teclado.

1.3 Una ejecución, para ingresar múltiples conjuntos de datos, el número de conjuntos está determinado por los primeros datos ingresados ​​(ingrese una N al principio, seguido de N conjuntos de datos)

Ejemplo 3:

Description
计算 a + b

Input
第一行是数据的组数N,从第二行是N组由两个整数(a和b)构成的输入,a和b之间用空格隔开,每组输入单独占一行 

Output
每组的两个整数(a和b)求和并输出,每组的求和结果独占一行

Sample Input
2
1 5
10 20

Sample Output
6
30

Debe leer la primera línea para determinar la cantidad de grupos N y luego escribir un bucle que se ejecute N veces para su procesamiento. La solucion es:

#include<stdio.h>
int main()
{
    
    
	int n,i;
	int a,b;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
    
    
		scanf("%d%d",&a,&b);
		printf("%d\n",a+b);
	}
	return 0;
}

1.4 La entrada no indica cuántos conjuntos de datos hay, pero termina con una entrada especial.

Preguntas comunes como "ingrese las calificaciones del estudiante y termine con -1" son comunes en las preguntas, si ningún estudiante obtiene un punto -1, se puede obtener este dato final.
Ejemplo 4:

Description
计算 a + b

Input
多组由两个整数(a和b)构成的输入,a和b之间用空格隔开,每组输入单独占一行。当输入为 0 0 时,输入结束。

Output
每组的两个整数(a和b)求和并输出,每组的求和结果独占一行。

Sample Input
1 5
10 20
0 0

Sample Output
6
30

Construya un ciclo para procesar los datos y tome si la entrada requerida para finalizar se encuentra como la base para el final del ciclo. La solucion es:

#include <stdio.h>
int main()
{
    
    
    int a,b;
    while(scanf("%d %d",&a, &b) &&(a||b))
	{
    
    
		printf("%d\n",a+b);
	}
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/mahoon411/article/details/123479652
Recomendado
Clasificación