logo Thecsea.it



Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License



scolastica » esercizi » terza superiore » linguaggio c

Testo dell'esercizio

In un array di 100 elementi e' memorizzata una frase. Ogni lettera della frase e' contenuta in un elemento dell'array.
Ad esempio:
IL MIO GATTO

Scrivere un programmma che permetta di:
1-memorizzare la frase nell'array
2-stampare la frase al contrario come nel seguente esempio:
OTTAG OIM LI
3-stampare il numero di parole memorizzate nell'array (le parole sono separate dal carattere spazio);
4-stampare quante volte compare ciascuna vocale e quale vocale compare con frequenza maggiore.

mostra soluzione

01/*
02CLAUDIO CARDINALE III AI
03In un array di 100 elementi e' memorizzata una frase. Ogni lettera della frase e' contenuta in un elemento dell'array.
04Ad esempio:
05IL MIO GATTO
06 
07Scrivere un programmma che permetta di:
081-memorizzare la frase nell'array
092-stampare la frase al contrario come nel seguente esempio:
10OTTAG OIM LI
113-stampare il numero di parole memorizzate nell'array (le parole sono separate dal carattere spazio);
124-stampare quante volte compare ciascuna vocale e quale vocale compare con frequenza maggiore.
13*/
14#include<stdio.h>
15#define MAX 100
16int main(){
17     
18    //dichiarazioni
19     
20    int n,i=0,parole=1,voc[5]={0,0,0,0,0},pos=0;
21    char frase[MAX],mag;
22     
23     
24    //acquisizione dati
25     
26    printf("inserire la frase (invio per interrompere) : ");
27    do{
28        scanf("%c",&frase[i]);
29    }while(frase[i++] != 10);
30    n = i;
31     
32     
33    //calcoli e visualizzazione risultati
34     
35    //2
36    for(i=n-1;i>=0;i--)
37        printf("%c",frase[i]);
38    printf("\n");
39     
40    //3
41    for(i=0;i<n;i++)
42        if(frase[i] == ' ')
43            parole++;
44    printf("parole = %d\n",parole);
45     
46    //4
47    for(i=0;i<n;i++)
48        switch(frase[i]){
49            case 'a':
50                voc[0]++;
51                break;
52            case 'e':
53                voc[1]++;
54                break;
55            case 'i':
56                voc[2]++;
57                break;
58            case 'o':
59                voc[3]++;
60                break;
61            case 'u':
62                voc[4]++;
63        }
64     
65    for(i=0;i<5;i++)
66        if(voc[i]>voc[pos])
67            pos = i;
68    switch(pos){
69        case 0:
70            mag = 'a';
71            break;
72        case 1:
73            mag = 'e';
74            break;
75        case 2:
76            mag = 'i';
77            break;
78        case 3:
79            mag = 'o';
80            break;
81        case 4:
82            mag = 'u';
83    }
84    printf("vocali :\na = %d\ne = %d\ni = %d\no = %d\nu = %d\nvocale ripetuta più volte = %c\n",voc[0],voc[1],voc[2],voc[3],voc[4],mag);
85}

Testi Consigliati:

Il linguaggio C. Principi di programmazione e manuale di riferimento. Ediz. MyLab. Con Contenuto digitale per download e accesso on line
C guida alla programmazione: Conoscere lo standard C11 dalle basi del linguaggio alle direttive del preprocessore (Programmare con C Vol. 1)
Programmazione in C

torna



Copyright © 2004-2025 thecsea.it (Claudio Cardinale - cardi@thecsea.it)! Tutti i diritti riservati. - contattaci