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