Schreiben Sie ein Programm, das einen Text von stdin einliest und anschließend die Anzahl der Worte, die Anzahl der Buchstaben und zum Schluss eine Tabelle über die Verteilung der Längen und die durchschnittliche Wortlänge ausgibt. Ein Wort ist eine Folge von Zeichen, die nur aus Buchstaben besteht (maximale Wortlänge 30 Zeichen, maximale Textlänge 500 Zeichen).
Eingabe: /text/
Ausgabe: 2 ***
3 ****
4 *
Anzahl der gezählten Worte: 8
Durchschnittliche Wortlänge: 2.75
Anzahl der gezählten Buchstaben: 22
Ich habe die Wortlänge,Buchstaben und Worte schon bestimmt, da ich die Länge der Worte und die häufigkeit dieser Länge auch Ausgeben muss, würde ich gerne eine Matrix verwenden,die ich jeweils erweitere! Wie kann ich das machen? bitte...
Das ist meine bisherige Source:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define MAX 500
//--Prototypen--//
void einlesen(int *words,int *anzahl,float *lenght,char text[]);
//--Hauptprogramm--//
int main(void){
int worte=1;
int buchstaben=0;
float wortlaenge=0;
char text[MAX]={0};
einlesen(&worte,&buchstaben,&wortlaenge,text);
return EXIT_SUCCESS;
}
void einlesen(int *words,int *anzahl,float *lenght,char text[]){
printf("Bitte geben sie einen Text ein(Abbruch mit '.'):\n");
int lauf=0;
int hilf=0;
float hilf2=0;
int zaehl=0;
int array[30]={0};
for(lauf=0;text[lauf-1]!='.';lauf++){
text[lauf]=getche();
if(text[lauf]!=32){
*anzahl=*anzahl+1;
zaehl++;
if(text[lauf]=='.'){
*anzahl=*anzahl-1;
zaehl--;
array[zaehl-1]++;
zaehl=0;
}
}
else{
*words=*words+1;
array[zaehl-1]++;
zaehl=0;
}
}
printf("%d",array[4]);
hilf=*anzahl;
hilf2=(float)hilf;
*lenght=hilf2/ *words;
printf("\nanzahl:%d\n",*anzahl);
printf("words:%d\n",*words);
printf("lenght:%.2f\n",*lenght);
}