Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <ctype.h>
- #include <string.h>
- #define MAX 1000
- void writeToFile() {
- FILE *f = fopen("text.txt", "w");
- char c;
- while((c = getchar()) != '#') {
- fputc(c, f);
- }
- fclose(f);
- }
- int main() {
- writeToFile();
- //otvarame txt fajl vo mod za chitanje
- FILE *f;
- if ((f = fopen("text.txt" , "r")) ==NULL){
- fprintf(stderr,"ERROR");
- return -1;
- }
- char niza[MAX][MAX];
- int i,j,kol=0,max;
- int red[MAX]={0,};
- char c;
- //Gi zimame SITE elementi od nizata vo char matrica
- while ((c=fgetc(f) )!= EOF){
- if (c=='\n'){
- kol++;
- }
- else{
- niza[kol][red[kol]]=c;
- }
- red[kol]++;
- }
- int words[MAX]={0,};
- //Nizata words go dobiva brojot na zborovi od sekoj red vo matricata dobiena od txt dokumentot
- //Ako ima prazno mesto, words[kolona]++
- for (i=0;i<kol;i++){
- for (j=0;j<red[i];j++){
- if (isspace(niza[i][j])){
- words[i]++;
- }
- }
- words[i]++;
- }
- max=0;
- float avg=0;
- /*Go pechatime brojot na zborovi od sekoja kolona i gi sobirame vo float promenliva koja podocna ja delime so brojot na koloni za da dobieme prosechna vrednost. I ISTOVREMENO naogjame koja kolona ima najgolem broj zborovi */
- for (i=0;i<kol;i++){
- printf("%d\n",words[i]);
- avg+=words[i];
- if (max <words[i]){
- max = words[i];
- j=i;
- }
- }
- printf("%0.2f\n",avg/=kol);
- /*Vo promenlivata j od prethodniot ciklus go zachuvavme redot kade shto ima najvekje zborovi, tuka kje go iskoristime za da ja
- ispechatime matricata so taa kolona i gi konvertirame site mali bukvi golemi, a site golemi mali */
- //NOTE: prviot element vo sekoja rechenica od matricata osven prvata imashe prazno mesto, ternaren operator vo for go popravi toa :))
- for (i=(j==0)?0:1;i<red[j];i++){
- if (isupper(niza[j][i])){
- printf("%c",tolower(niza[j][i]));
- }
- else if (islower(niza[j][i])){
- printf("%c",toupper(niza[j][i]));
- }
- else{
- printf("%c",niza[j][i]);
- }
- }
- fclose(f);
- return 0;
- }
Add Comment
Please, Sign In to add comment