Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] Stampare caratteri centrali di una serie di parole

    Buogiorno a tutti, ho un piccolo problema in un esercizio in cui,dato M<=50 (intero da scegliere) e data una serie di parole (di lungh max 100 carattei) separate dal carattere '\n', e terminata dal carattere EOF, stampare i caratteri centrali delle parole.
    Esempio:
    Con M=3 se in input si hanno le righe (con il
    carattere centrale evidenziato in grassetto):
    uno
    due
    tre
    quattro
    In output viene prodotto: u r t

    Il procedimento che voglio fare è questo:

    -ripeti fino a EOF
    - leggi una riga (ovvero leggi i caratteri fino al "\n"
    - salvi il carattere centrale in un vettore
    - finita la lettura stampi gli ultimi M elementi del vettore in ordine di indice crescente


    Questa è la parte di codice:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #define MAX 100
    
    int main(void)
    {
    	char seq[MAX];           //per la serie di parole
    	char carat[MAX];         //per i caratteri centrali
    	char c;	
    	int M;
    	int count=0;         //contatore di caratteri
    	int i,j,k;
    
    
    	printf("Scegli M<=50: ");
    	scanf("%d", &M);
    
    	printf("Sequenza di parole:\n");
    	i=0;                                           //inserimento parole
    	while((c=getchar())!=EOF)
    	{
    		seq[i++]=c;
    	}
    	seq[i]='\0';
    
    
    	i=0;k=0;
    	while(seq[i] != EOF)
    	{
    		while(seq[i] != '\n')
    		{
    			count=count+1;
    		}
    		carat[k++] = seq[count/2];
    		count=0;
    	}
    			
    
    	i=0;
    	for(j=M-i; i<M; i--)              //stampa
    		printf("%c\n", carat[j]);
    
    
    	return 0;
    Non riesco a capire come memorizzare questi caratteri.
    Grazie

  2. #2
    Scusa ma non ti conviene creare un array di stringhe e poi ci lavori sopra?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    466

    Re: [C] Stampare caratteri centrali di una serie di parole

    Originariamente inviato da Alessia1984
    Non riesco a capire come memorizzare questi caratteri.
    Grazie
    Con un ciclo for, un if interno con la condizione corretta, se il contatore vale strlen(parola)/2+-N ( N dipende da strlen(parola), per i casi di 3 lettere neanche ti serve ) salvi parola[i] all'interno di un altro array che chiameremo parola2[x], dove x sarà un altro contatore che inizializzi a 0 ed incrementi nell'if ..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.