- Dato il seguente programma
#include <stdio.h>
int main(){
float a[4]= { 1.30, 2.30, 3.30, 4.60}, *ip, *iq;
ip = &a[0];
iq = ip;
printf("valore di a[0]: %f,
indirizzo di a[0]: %u \n", a[0], &a[0]);
return 0;
}
Aggiungere anche la scrittura di
*ip, &ip, ip, a
e interpretare i risultati. Aggiungere quindi anche la stampa di
*ip + 3 e *(ip+3)
ed interpretare anche questi risultati.
- Riscrivere il programma per la soluzione delle equazioni di secondo
grado in modo da utilizzare una function che accetti in input i tre
coeficienti (reali) e fornisca, attraverso due argomenti puntatori
a float, i valori delle due radici. Ricordiamo che se una function
ha un argomento puntatore, nell' invocazione della function a quell'
argomento deve corrispondere un indirizzo (che poi e' il valore del puntatore).
Es:
void funz( int a, int *b );
int main(){
int z;
...
funz( 2, &z );
...
- Scrivere un programma che dichiari un array reale di 10 elementi e
poi legga i valori e ne calcoli la somma dei quadrati (e la scriva).
- Usare gli arrays per scrivere un programma che legga N valori interi
in input e li memorizzi in un array e li ordini in ordine crescente.
Un algoritmo possibile per l' ordinamento itera per un numero sufficiente
di volte l' esame di tutte le coppie consecutive di elementi
ordinandole se necessario. Un modo per "scambiare di posto" due
elementi consecutivi dell' array e' il seguente:
tmp = a[i];
a[i] = a[i+1];
a[i+1] = tmp;
- Scrivere un programma che legga interi (con segno) e scriva quante
volte e' stato immesso ogni intero tra 1 e 5 (ogni intero puo' essere
immesso un numero arbitrario di volte).
- Scrivere un programma che dichiari ed inizializzi due array a
due indici (matrici) di dimensione 2x2 e poi calcoli la matrice prodotto
i cui elementi sono dati da
cij = Somma_su_k_da_1_a_2 aik
bkj
per 1 <= i<= 2 e 1 <= j<= 2
Tener conto dei diversi limiti degli indici degli arrays C.
- Cosa scriverà il seguente programma ?
#include <stdio.h>
int main(){
int i;
char s1[] = "Immetti un numero";
for(i=0;i< sizeof(s1); i++)
printf("%c \n",s1[i]);
printf("%s \n",s1);
return 0;
}
Modificarlo in modo da introdurre una seconda stringa di lunghezza
40 e copiarvi sopra la stringa s1.