7-26 Entrada y visualización de la libreta de direcciones (10 puntos) // Preguntas propensas a errores

Un registro en la libreta de direcciones contiene la siguiente información básica: nombre del amigo, fecha de nacimiento, sexo, número de teléfono fijo y número de teléfono móvil. Esta pregunta requiere escribir un programa, ingresar N registros y mostrar cualquier registro según sea necesario.

Formato de entrada:

La entrada da un número entero positivo N (≤10) en la primera línea; luego N líneas, cada línea 姓名 生日 性别 固话 手机da un registro de acuerdo con el formato . El nombre es una cadena no vacía con no más de 10 caracteres y sin espacios; la fecha de nacimiento yyyy/mm/ddse da en el formato del año, mes y día; el género está Mrepresentado por "masculino" y F"femenino"; 固话y 手机ambos son números consecutivos que no exceden los 15 dígitos , + Puede aparecer delante de él.

Una vez que se completa la entrada del registro de la libreta de direcciones, la última línea da un entero positivo K, seguido de K
enteros. (Puede ser positivo, negativo o cero) indica el número de registro a consultar (numerado secuencialmente de 0 a N-1). Los números están separados por espacios.

Formato de salida:

Para cada número de registro que se consultará, 姓名 固话 手机 性别 生日envíe el registro en una fila de acuerdo con el formato. Si el registro de consulta no existe, imprímalo Not Found.

Muestra de entrada:

3
Chris 1984/03/10 F +86181779452 13707010007
LaoLao 1967/11/30 F 057187951100 +8618618623333
QiaoLin 1980/01/01 M 84172333 10086
2 1 7

Salida de muestra:

LaoLao 057187951100 +8618618623333 F 1967/11/30
No encontrado

#include<stdio.h>
int main()
{
    
    
	typedef struct phone
	{
    
    
		char name[20];
		char riqi[20];
		char hua[20];
		char fm;
		char shou[20];
	}M;
	M s[13];
	int n, x, i, j, z, k, a;
	scanf("%d",&n);
	for (i = 0; i < n; i++)
	{
    
    
		scanf("%s %s %c %s %s", &s[i].name, &s[i].riqi, &s[i].fm, &s[i].hua, &s[i].shou);
		//%c前面要有空格else %c会担任某些题中getchar的作用将空格吸收。
	}
	scanf("%d", &k);
	for (i = 0; i < k; i++)
	{
    
    
		scanf("%d", &a);
		if (a>=0&&a < n)//题中给出的是整数,所以可正可负可为零。
			printf("%s %s %s %c %s\n", s[a].name, s[a].hua, s[a].shou, s[a].fm, s[a].riqi);
		else
			printf("Not Found\n");
	}
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/hx_521/article/details/85312778
Recomendado
Clasificación