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:
Non riesco a capire come memorizzare questi caratteri.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;
Grazie

Rispondi quotando