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