RISOLTO Semplice Programma In C#

Snowstorm

Utente Attivo
1,280
113
Hardware Utente
CPU
i7 4790k 4.4GHz | Intel Core i7 2630QM 2,00 GHZ, up to 2,9 with Turbo Boost
Dissipatore
Corsair H110i
Scheda Madre
Gigabyte Z97X Gaming 7 | Acer JV51_HR
Hard Disk
Samsung 850 Pro 256gb+HDD WD Caviar Blue 1TB | 750 GB HDD+SSD Samsng 840 Pro 256GB
RAM
G.Skill Sniper 2400MHz cl11 | 6 GB ddr3 1333mhz
Scheda Video
Gigabyte G1 GTX 970 4GB | Una squallida ma funzionante GT 540M
Scheda Audio
Creative SoundBlaster Zx| Realtek HD audio con Dolby Audio Advanced v2
Monitor
LG E2281 Flatron 21,5' | 15.6 pollici HD, monitor notebook Acer
Alimentatore
CM GS650 | Integrato
Case
NZXT Phantom 530 | Acer Aspire 5755G
Periferiche
Casse: M-Audio BX5 D2; Mouse: Steelseries Rival 100; Tastiera: CM Storm Quickfire Ultimate; Cuffie: Superlux HD681Evo
Sistema Operativo
Windows 8.1 | Windows 7 Home Premium
Salve, abbiamo avuto in classe una consegna di scrivere un codice in C# molto semplice, ecco il testo:
"Una pallina cade da un'altezza data in input, ogni volta che tocca il suolo, rimbalza ad un'altezza uguale alla metà dell'altezza precedente.

Scrivere un programma in c# modalità console che indichi dopo quanti rimbalzi non raggiunge più un'altezza prefissata."

Ecco il mio codice:
Codice:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace N_rimbalzi
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Inserire altezza massima di partenza");
            int hmax = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Inserire altezza di riferimento");
            int hrif = Convert.ToInt32(Console.ReadLine());
            int i=0;               //NUMERO DI RIMBALZI

            for (int h=0;  h>hrif; i++ )
            {
                h = hmax / 2;
                hmax = h;
            }
            Console.WriteLine(i);
            Console.ReadKey();
        }
    }
}
Ad ogni input come risposta mi viene dato "0".
Se al di fuori del for inizializzo i; senza assegnare ad esso un valore, l'operazione i++ non può essere svolta

Mi potreste dare qualche suggerimento?
 

rodhellas

Utente Attivo
1,469
394
Hardware Utente
CPU
Intel i5 3470
Scheda Madre
AsRock H77 pro4/mvp
Hard Disk
120GB SSD + 1TB HD
RAM
12GB Corsair XMS3 1333mhz
Scheda Video
Gigabyte GTX 960 OC
Scheda Audio
Integrata
Monitor
SyncMaster 223BW
Alimentatore
Antec HCG-520M
Case
Thermaltake Commander Ms-i Snow Edition
Sistema Operativo
Windows 10 64bit
Codice:
i = 0;
while ( hmax > hrif ) {
 hmax /= 2;
 i++;
}
Tutto quello nella parentesi del for dovrebbe essere solo temporaneo ( inizializzi h, uscito dal for il programma dealloca lo spazio di memoria riservato ad h )
 
Ultima modifica:
  • Mi piace
Reactions: Snowstorm

Snowstorm

Utente Attivo
1,280
113
Hardware Utente
CPU
i7 4790k 4.4GHz | Intel Core i7 2630QM 2,00 GHZ, up to 2,9 with Turbo Boost
Dissipatore
Corsair H110i
Scheda Madre
Gigabyte Z97X Gaming 7 | Acer JV51_HR
Hard Disk
Samsung 850 Pro 256gb+HDD WD Caviar Blue 1TB | 750 GB HDD+SSD Samsng 840 Pro 256GB
RAM
G.Skill Sniper 2400MHz cl11 | 6 GB ddr3 1333mhz
Scheda Video
Gigabyte G1 GTX 970 4GB | Una squallida ma funzionante GT 540M
Scheda Audio
Creative SoundBlaster Zx| Realtek HD audio con Dolby Audio Advanced v2
Monitor
LG E2281 Flatron 21,5' | 15.6 pollici HD, monitor notebook Acer
Alimentatore
CM GS650 | Integrato
Case
NZXT Phantom 530 | Acer Aspire 5755G
Periferiche
Casse: M-Audio BX5 D2; Mouse: Steelseries Rival 100; Tastiera: CM Storm Quickfire Ultimate; Cuffie: Superlux HD681Evo
Sistema Operativo
Windows 8.1 | Windows 7 Home Premium
Codice:
i = 0;
while ( hmax > hrif ) {
 hmax /= 2;
 i++;
}
Tutto quello nella parentesi del for dovrebbe essere solo temporaneo ( inizializzi h, uscito dal for il programma dealloca lo spazio di memoria riservato ad h )
Ok, come immaginavo.
Grazie mille!

(Ci dobbiamo dividere la valutazione?! :D)
 
Ultima modifica:

Entra

oppure Accedi utilizzando