Ciao a tutti mi sto preparando per l'esame la teoria la so ma mi sto "impapocchiando" con la pratica il mio ultimo dubbio riguarda gli array ed in particolare le funzioni,
la traccia dell'esercizio è questa
È necessario scrivere un programma in linguaggio C++ che gestisca i dati di due collezioni fatte di esattamente N caratteri (dove N è una costante fissata, per esempio pari a 5). Il programma deve effettuare le seguenti operazioni attraverso l’utilizzo di un menu di comandi:
• leggere dalla tastiera i valori delle due collezioni
• stampare le collezioni sullo schermo;
• per ciascuna collezione, contare il numero di 'c' seguite dal carattere 'h' e dal carattere 'e'
• stampare sullo schermo i due numeri calcolati al passo precedente
• stampare un messaggio per segnalare quale delle due collezioni contiene il numero maggiore di
sequenze di caratteri 'che'
io ho provato due versioni differenti soltanto che i prof non voglio il riciclo del codice;
adesso posto le due versioni:
#include <iostream>
using namespace std;
const int N = 10;
void inserisciValori(char array[N],char s[N]);
int contaValori(char f[N]);
void stampaValori(char arrayDati[N],char secondo[N]);
int main(){
char arrayDati[N],secondo[N];
int val,somma;
inserisciValori(arrayDati,secondo);
val = contaValori(arrayDati);
somma=contaValori(secondo);
cout<<"val"<<":"<<val<<endl; //stampa momentanea
cout<<"somma"<<":"<<somma<<endl; //stampa momentanea
return 0;
}
void inserisciValori(char arrayDati[N],char secondo[N]){
cout<<"inserisci i caratteri all'interno dei due array\n";
cout<<"caratteri primo array\n";
for(int i = 0; i<N ; i++){
cin>>arrayDati[i];
}
cout<<"caratteri secondo array\n";
for(int i = 0; i<N;i++){
cin>>secondo[N];
}
}
int contaValori(char f[N]){
int somma = 0;
for(int i = 0; i<N ; i++){
if(f[i] == 'c')&&(f[i+1]==' h')&&(f[i+2]=='e' ){
somma++;
}
}
return somma;
}
seconda versione:
[code]
#include <iostream>
using namespace std;
const int N = 10;
void inserisciValori(char arrayDati[N],char secondo[N]);
int contaValori(char arrayDati[N],char secondo[N]);
void stampaValori(char arrayDati[N],char secondo[N]);
int main(){
char arrayDati[N],secondo[N];
int val,somma;
inserisciValori(arrayDati,secondo);
val = contaValori(arrayDati);
return 0;
}
void inserisciValori(char arrayDati[N],char secondo[N]){
cout<<"inserisci i caratteri all'interno dei due array\n";
cout<<"caratteri primo array\n";
for(int i = 0; i<N ; i++){
cin>>arrayDati[i];
}
cout<<"caratteri secondo array\n";
for(int i = 0; i<N;i++){
cin>>secondo[N];
}
}
int contaValori(char arrayDati[N],char secondo[N]){
int somma = 0;
int somma2 =0;
for(int i = 0;i < N ; i++){
if((arrayDati[i] == 'c')&&(arrayDati[i+1]== 'h')&&(arrayDati[i+2]== 'e')){
somma++;
}
if((secondo[i]=='c')&& (secondo[i+1]=='h')&&(secondo[i+2]=='e')){
somma2++
}
}
}