Segue una bozza di soluzione di alcuni degli esercizi. Spero non ci siano errori!
saluti,
-- FA
0.3
int minuscola(char x) {
if ('a' <= x && x <= 'z')
return 1
else
return 0
}
int maiuscola(char x) {
if ('A' <= x && x <= 'Z')
return 1
else
return 0
}
void StampaMaxEMin(char* v){
min = v[0];
max = v[0];
int i;
for (i=0; v[i]!='\0'; i++) {
if (maiuscola(v[i]) {
if (minuscola(max) || v[i]>max)
max = v[i];
if (maiuscola(min) && v[i]<min)
min = v[i];
}
else { // caso minuscola(v[i])
if (maiuscola(min) || v[i]<min) {
min = v[i];
if (minuscola(max) && v[i]>max)
max = v[i]
}
}
printf("%c%c",min,max);
}
1.1
int intervallo(float *a, float f) {
float somma=a[0];
i=0;
while (f>somma) {somma+=a[i]; i++;}
return i;
}
1.2
#include<string.h>
char Ripeti(char *str, int n) {
int l_nuova = strlen(str)*n;
char *p_nuova = malloc((l_nuova+1)*sizeof(char));
int k;
for (k=0; k<l_nuova; k++)
p_nuova[k]=str[k%l_nuova];
p_nuova[l_nuova+1]='\0';
return p_nuova;
}
1.3
A) ritorna il numero di elementi INIZIALI della lista ordinati in modo strettamente crescente
B) ritorna il massimo numero di elementi della lista ordinati in modo strettamente crescente
C) stampa le FOGLIE dell'albero da sinistra a destra
Il giorno mercoledì 12 settembre 2012 19:01:30 UTC+2, Fabio Aiolli ha scritto: