Introdurre un numero intero positivo 45 cifre: 2
#include<stdio.h>
int main() {
int n, i = 0, m;
do {
printf("inserire n: ");
scanf("%d", &n);
}while(n < 0);
m = n;
while(n > 0) // (*) {
n = n / 10;
i++;
}
printf("%d ha %d cifre", m, i);
return 0;
}
Se avessimo modificato la condizione del while (*) in while(n!=0)
Il programma funziona anche con i numeri negativi (quindi si poteva non mettere il controllo sull’inserimento di n
Nel caso avessimo voluto farlo con il for:
for( ; n > 0; i++) n = n / 10;
Introdurre tre numeri interi:
4 1 8 massimo: 8
#include<stdio.h>
int main() {
int a,b,c,massimo;
// acquisisco
printf("\nInserire a: "); scanf("%d", &a);
printf("\nInserire b: "); scanf("%d", &b);
printf("\nInserire c: "); scanf("%d", &c);
// soluzione con if annidati if(a > b) //posso escludere b
if(a > c)
massimo = a;
else
massimo = c;
else // posso escludere a if(b > c)
massimo = b;
else
massimo = c;
printf("max(%d,%d,%d) = %d", a, b, c, massimo);
return 0;
}
#include<stdio.h>
int main() {
int a,b,c,massimo;
// acquisisco
printf("\nInserire a: "); scanf("%d", &a);
printf("\nInserire b: "); scanf("%d", &b);
printf("\nInserire c: "); scanf("%d", &c);
// soluzione con istruzioni composte if (a>=b && a>=c)
massimo = a;
if (b>=a && b>=c) massimo = b;
if (c>=a && c>=b) massimo = c;
printf("max(%d,%d,%d) = %d", a, b, c, massimo);
return 0;
}
#include<stdio.h>
int main() {
int a,b,c,massimo;
// acquisisco
printf("\nInserire a: "); scanf("%d", &a);
printf("\nInserire b: "); scanf("%d", &b);
printf("\nInserire c: "); scanf("%d", &c);
// soluzione con if annidati if(a > b) //posso escludere b
if(a > c)
massimo = a;
else
massimo = c;
else // posso escludere a if(b > c)
massimo = b;
else
massimo = c;
printf("max(%d,%d,%d) = %d", a, b, c, massimo);
return 0;}
Introdurre tre numeri interi:
4 1 8 ordine: 1, 4, 8
a , b
b , c b , c
a , c a , c
a , b , c
a , c , b c , a , b b , a , c b , c , a
c , b , a
a < b a>=b
b < c b>=c b < c b>=c
a < c a>=c a < c a>=c
Esercizio 1
#include<stdio.h>
int main() {
int a,b,c;
printf("inserire primo numero"); scanf("%d", &a);
printf("inserire secondo numero"); scanf("%d", &b);
printf("inserire terzo numero"); scanf("%d", &c);
if(a > b) if(b>c)
printf("%d %d %d", a, b, c);
else
if(a > c)
printf("%d %d %d", a, c, b);
else
printf("%d %d %d", c, a, b); else // b>=a if(a>c)
printf("%d %d %d", b, a, c);
else
if(b > c)
printf("%d %d %d", b, c, a);
else
printf("%d %d %d", c, b, a);
return 0;
}
#include<stdio.h>
int main() {
int a,b,c, temp;
printf("inserire primo numero"); scanf("%d", &a);
printf("inserire secondo numero"); scanf("%d", &b);
printf("inserire terzo numero"); scanf("%d", &c);
if(a > b)
{ temp = a; a = b; b = temp; }
if(a > c)
{ temp = a; a = c; c = temp; }
if(b > c)
{ temp = b; b = c; c = temp;}
printf("%d %d %d", a, b, c);
return 0;}
Inserire numero di valori 4 Inserire il prossimo valore 5 Inserire il prossimo valore 2 Inserire il prossimo valore 7 Inserire il prossimo valore 8
massimo valore= 8, posizione=4
#include<stdio.h>
int main() {
int n, i = 1, max, pos_max = 1, x;
do {
printf("quanti numeri?");
scanf("%d", &n);
}while(n<0);
printf("inserisci numero (%d):", i);
scanf("%d", &x);
max = x;
while(i < n) {
++i;
printf("inserisci numero (%d): ", i);
scanf("%d", &x);
if(max < x) {
max = x;
pos_max = i;
} }
printf("\n il max e' %d in pos %d", max, pos_max);
return 0;
}
#include<stdio.h>
int main() {
int n, primo =1, i = 2;
scanf("%d", &n);
while(i <= n/2 && primo == 1) {
if(n%i==0)
primo = 0;
i++;
}
printf("\n%d ", n);
if(primo == 0)
printf("NON ");
printf("e' primo ");
}
La variabile primo funziona come variabile di flag,
indicando alla fine delle iterazioni se la condizione
«avere divisori» non si sia mai verificata
#include<stdio.h>
int main() {
int x, primo, i;
do {
printf("inserire x: ");
scanf("%d", &x);
primo = 1;
for(i=2; i <= x /2; i++) // devo mettere i <= x/2 altrimenti il 4 non entra nel for!
if(x % i == 0) primo = 0;
if(primo)
printf("%d e\' primo\n", x);
}while(x > 0);
return 0;
}
220 → 110 + 55 + 44 + 22 + 20 + 11 + 10 + 5 + 4 + 2 + 1 = 284;
284 → 142 + 71 + 4 + 2 + 1 = 220:
𝑎 𝑏 𝑎 × 𝑏
* * * *
* *
* * * *
#include<stdio.h>
int main() {
int x,i,j;
printf("inserire lato quadrato: ");
scanf("%d", &x);
// stampa prima riga for(i=0; i<x; i++)
printf("*");
printf("\n");
// stampa seconda alla penultima riga for(j = 1; j < x-1; j++)
{
printf("*"); // asterisco prima colonna for(i=1; i<x-1; i++) // x-2 spazi
printf(" "); // asterisco ultima colonna printf("*\n");
}
// stampa ultima riga for(i=0; i<x; i++)
printf("*");
return 0;
}
𝑁 𝑁
23
#include <stdio.h>
void main()
{
char car;
int contatore = 0;
printf(“Inserire una serie di caratteri(# per finire)\n");
do {
scanf("%c", &car);
if(car=='a’||car=='e’||car=='i’||car==‘o’||car=='u') contatore++;
} while(car!='#');
printf("Il numero delle vocali e' %d",contatore);
}
24