Vai al contenuto

Aiuto nel comando di iterazione while [linguaggio C]


Agathos

Messaggi raccomandati

L'esercizio dice:

Sviluppare un programma che determini la paga lorda per ognuno dei diversi impiegati. L'azienda per le prime 40 ore lavorative offre il salario di base, per ogni ora in più paga esattamente una volta e mezza il salario di base. Sono forniti una lista di impiegati, il numero di ore in cui ha lavorato ogni impiegato, il salario orario di base di ogni impiegato. Determinare la paga lorda di ogni impiegato inserendo tramite input le suddette informazioni.

Quello che ho prodotto in 5 minuti è stato questo (incompleto ed errato):

/* PROGRAMMA 3.21 */

# include <stdio.h>

int main()

{
int impiegato;
int ore;
int oreaggiuntive;
int x;
int salariobase;
int salario;


salariobase = 4 * ore; 


/* ELABORO UNA LISTA CONTROLLATA DA UN VALORE SENTINELLA */

while ( impiegato != -1)
	printf ( "Impiegato numero: \n" );
	scanf ( "%d" , &impiegato);

	printf ( "Numero di ore lavorate: \n" );
	scanf ( "%d" , &ore );

	printf ( "Il salario è €\n" );
	scanf ( "%2f" , &salario );

	/* DETERMINAZIONE DEL SALARIO */

	if ( ore <= 40 ) {
	salario = salariobase;
	}
	else {
	printf
	ore == 40;
	oreaggiuntive = 40 + x;
	salario = salariobase + 


e fondamentalmente rimane incompleto poichè mi sono bloccato nel capire come far si che dopo le 40 ore lavorative l'impiegato si "buschi" una volta e mezzo il salario normale.

Ho lasciato la programmazione un mesetto fa e adesso sono un pò arrugginito; un aiutino? :ghghgh::ghghgh:

Già che ci sono posto pure un altro problema riscontrato nel comando di iterazione for; i risultati vengono sballati, sapreste dirmi perchè?

/* --- CALCOLARE L'INTERESSE COMPOSTO - ITERAZIONE CON FOR --- */

#include <stdio.h>
#include <math.h>

int main()
{
double amount; /* Ammontare nel deposito */
double principal = 1000.0; /* Capitale iniziale */
double rate = 0.5; /* Tasso di interesse annuo */
int year;

/* VISUALIZZA LE INTESTAZIONI DELLE COLONNE DELLA TABELLA */
printf ( "%4s%21s\n", "Year", "Amount on deposit" );

for ( year=1; year <= 10; year = year + 1 ) {
	amount = principal * pow ( 1.0 + rate, year );

	/* Visualizza una riga della tabella */
	printf ("%4d%21 .2f\n", year, amount );
}

return 0;
}

In sostanza si tratta di un programma per calcolare l'interesse composto di un tizio che ha messo in un deposito 1000.00$ che rende il 5% annuo. E noi dobbiamo calcoare il suo conto per ognuno dei successivi 10 anni.

E poi una cosa, cosa determina la specifica di conversione s? Per caso gli spazi :ghghgh:?

E' una casualità oppure ha un senso con il %4d%21.2f che comunque sono specifiche che determinano numeri interi (il primo) e numeri con la virgola (il secondo).

Mac Mini Core Duo 1.66 GHz

iPod Nano

RAM: 512MB

Memoria: 4GB

Hard Disk: 80GB

Colore: azzurro

Serial: YM608GJMU36

Link al commento
Condividi su altri siti

Intel c......tra l'altro.....

La soluzione del primo problema:

..........
while(var<41)
{
  // qui va il codice
........
}
.......

Secondo problema

prova mettere

..........
printf(%[i]qualcosa[/i]u, variabile intera)
.......

Di quest'ultimo non sono certo dato che è da un po che non uso il c (o il c++)....

"Non c'è motivo che tu ti arrabbi.....

Tanto il mondo, un giorno, farà a meno di te....."

Letto su un cartello in un negozio

Link al commento
Condividi su altri siti

Intel c......tra l'altro.....

La soluzione del primo problema:

..........
while(var<41)
{
  // qui va il codice
........
}
.......

Secondo problema

prova mettere

..........
printf(%[i]qualcosa[/i]u, variabile intera)
.......

Di quest'ultimo non sono certo dato che è da un po che non uso il c (o il c++)....

LOL, non c'è problema...

era una cazzata, me ne sono accorto subito dopo! :ghghgh:

Comunque grazie lo stesso! :ciao:

come fai a programmare in C su mac?????
Editor: TextWrangler

Compilatore: Terminale

Mac Mini Core Duo 1.66 GHz

iPod Nano

RAM: 512MB

Memoria: 4GB

Hard Disk: 80GB

Colore: azzurro

Serial: YM608GJMU36

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...