linguagem c. fazendo desse jeito ele imprime todas as rotas cadastrada. como faço para imprimir uma rota e volta para a impressão sem imprimir tudo

#include <cstdio>
#include <stdlib.h>
#include <cstdlib>
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <stdlib.h>

using namespace std;

struct trecho
{
    char origem[50];
    char destino[50];
    int numerodepedagios; 
    float precototalpedagios, distancia;
    
};

struct rota {
    char origem[50];
    char destino[50];
    trecho t[50];
};
  

int MenuTrecho(){
int op;
printf(" ______________________________________\n");
printf("|         $-Cadastro de Viajem-$       |\n");
printf("|______________________________________|\n");
printf("|  1-Cadastra_rota |2-Cadastra_trecho  |\n");
printf("|______________________________________|\n");
printf("|3-Visializar-rota |4-visializar-trecho|\n");
printf("|______________________________________|\n");
printf("|                5-SAIR                |\n");
printf("|______________________________________|\n");
printf("Informe a opcao desejada :");
scanf("%d", &op);    
return op;} 

trecho cadastra_trecho(){
trecho x;
    
printf("\nInforme a origem do trecho\n");
scanf("%s", &x.origem);
printf("\nInforme o destino do trecho\n");
scanf("%s", &x.destino);
printf("\nInforme a numero de pedagios\n");
scanf("%d", &x.numerodepedagios);
printf("\nInforme a distancia em KM\n");
scanf("%f", &x.distancia);

return x;}

void visualizar_trecho(trecho x[50], int n)
{
    int i;
    for (i=0; i<n; i++)
    {
    
    printf("\n ");
    x[i].precototalpedagios = x[i].numerodepedagios *3,5;    
    printf("Origem do trecho: %s\n ", x[i].origem);
    printf("Destino do trecho: %s\n ", x[i].destino);
    printf("Quantodade de pedagio: %d\n ", x[i].numerodepedagios);
    printf("Preço  dos pedagio: %f\n ", x[i].precototalpedagios);
    printf("distacia: %f\n", x[i].distancia);
        
    }};

rota cadastra_rota(){
rota x;    
printf("\nInforme a origem da rota\n");
scanf("%s", &x.origem);    
printf("\nInforme o destino do rota\n");
scanf("%s", &x.destino);
return x;}

void visualizar_rota(rota x[50], int n)
{
    int i;
    for (i=0; i<n; i++)
    {
    printf("\n");
    printf("Origem do Rota: %s\n", x[i].origem );
    printf("Destino do Rota: %s\n", x[i].destino );
    
    
    }};


    
    
int main(void)

{
    int op,quant=0,q=0, n;
    trecho t[50];
    rota x[50];
    rota y[50];
    
    
        
while (op !=6){
    printf("\n");
    op=MenuTrecho();
    
 switch (op) {
      case 1:
     x[q]=cadastra_rota();
     
     q++;
  break;
  
     case 2:
     t[quant]=cadastra_trecho();
     quant++;
    break; 
        
    case 3: 
    
    int i, n;
    
    printf("%d", x[q].destino);
    visualizar_rota(x,q);
    
     break;
    
    case 4:
     visualizar_trecho(t,quant);
     
    break;
    }
 }
system("pause");

return 0;}

Disciplina:Linguagem C1.519 materiais