ejercicios relacionados con el vector

Pregunta A: Lista de cursos para estudiantes

http://codeup.cn/problem.php?cid=100000596&pid=0 es
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
similar a una base de datos en la que se ingresan todos los datos que ingresó anteriormente.
Ingresa una persona y genera su información correspondiente.

Use un vector de tipo int, y luego convierta la cadena al id numérico correspondiente y use el método de direccionamiento para estadísticas.

#include<cstdio>
#include<vector>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
vector<int> stu[175761];//即学生编号数26*26*26*10+1
int str_int(char a[])
{
    
    
	int sum=0;
	for(int i=0;i<3;i++)
	{
    
    
		sum=sum*26+a[i]-'A';
	}
	sum=sum*10+a[3]-'0';
	return sum;
}
int main(void)
{
    
    
	int people,book;
	int number,n;
	char name[20];
	cin>>people>>book;
	while(book)
	{
    
    
		cin>>number>>n;
		for(int i=0;i<n;i++)
		{
    
    
			scanf("%s",name);
			stu[str_int(name)].push_back(number);
		} 
		book--;
	}
	while(people)
	{
    
    
		scanf("%s",name);
		printf("%s ",name);
		printf("%d",stu[str_int(name)].size());
		sort(stu[str_int(name)].begin(),stu[str_int(name)].end());
		for(int i=0;i<stu[str_int(name)].size();i++)
		{
    
    
			printf(" %d",stu[str_int(name)][i]);	
		}
		printf("\n");
		people--;
	}
	return 0;
} 

Pregunta B: Lista de estudiantes del curso

http://codeup.cn/problem.php?cid=100000596&pid=1
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Análisis de problemas:
Inserte la descripción de la imagen aquí
utilice una matriz de contenedores de vectores para almacenar el nombre de cada persona.
Usando el método de direccionamiento, cuando veas el número elegido por el alumno, lo agregas al contenedor correspondiente.
Finalmente, genere uno por uno. Ordene lexicográficamente antes de la salida, escriba un cmp y use sort para ordenar

#include<cstdio>
#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(string a,string b)
{
    
    
	return a<b;
}
int main(void)
{
    
    
	int people,book;
	int i,j,k;
	int n;//每一个人选的科目书 
	int number;//选的科目号 
	string str;
	vector<string> peoples[2505];
	cin>>people>>book;
	for(i=0;i<people;i++)
	{
    
    
		cin>>str;
		scanf("%d",&n);
		for(int j=0;j<n;j++)
		{
    
    
			scanf("%d",&number);
			peoples[number].push_back(str); 
		} 
	}
	for(i=1;i<=book;i++)
	{
    
    
		printf("%d %d\n",i,peoples[i].size());
		sort(peoples[i].begin(),peoples[i].end(),cmp);
		for(j=0;j<peoples[i].size();j++)
		{
    
    
			cout<<peoples[i][j]<<endl; 
		}
	}
	return 0;
} 

Supongo que te gusta

Origin blog.csdn.net/qq_46527915/article/details/115133580
Recomendado
Clasificación