Gå til innhold

Hva er galt med denne komandoen?


Anbefalte innlegg

Jeg er nybegynner innen c++. Jeg fant et eksempel i en bok, men når jeg skal kompliere det så kommer det opp en sånn rød greie over linje nummer to. Jeg anntar at det er noe galt med komandoen.

Den er som følger:

 

Main ()

{

printf ("How much money did you make last year? ");

scanf ("%f", &salary);

taxowed = salary * .95;

printf ("This is how much tax you owe = %8.2f", taxowed);

}

 

Jeg bruker Bloodshed Dev-C++..... Hva er galt og hvordan kan jeg rette den?

Lenke til kommentar
Videoannonse
Annonse
Hmm, stor M i main(), også har du ikke definert variablene.

salary, ganges det med et desimaltall, eller en integer?

 

#include <iostream>

int main()
{
    int salary, taxowed;
    
    std::cout << "How much money did you make last year? ";
    std::cin >> salary;
    taxowed = salary * 95              // Vet ikke hva det skulle være
    std::cout << taxowed << std::endl;
    return 0;
}

5657910[/snapback]

 

 

Tusen takk! :yes:

Lenke til kommentar

Koden du skrev, miig, er C

Koden prog master skrev er C++, men med mangel for alt som heter komma, så avrundingene er antakelig litt merkelige.

I teorien skulle egentlig taxowed ha blitt opprettet i det den variabelen ble initialisert, altså

double taxowed = salary * 0.95

(selv om 95% er mye skatt)

 

men jeg synes prog masters kode er mer oversiktlig ;)

 

Bare nevner mulighetene...

Lenke til kommentar
Koden du skrev, miig, er C

Koden prog master skrev er C++, men med mangel for alt som heter komma, så avrundingene er antakelig litt merkelige.

I teorien skulle egentlig taxowed ha blitt opprettet i det den variabelen ble initialisert, altså

double taxowed = salary * 0.95

(selv om 95% er mye skatt)

 

men jeg synes prog masters kode er mer oversiktlig ;)

 

Bare nevner mulighetene...

5658805[/snapback]

 

Takk skal du ha! :thumbup:

Lenke til kommentar

Med å "erklære" standarbibloteket, regner jeg med at du da mener å spesifisere hvilket namespace objektene, klassene, funksjonene, osv. ligger i. (?) (Altså ved å skrive std::cout istedenfor cout, o.l.) Dette er egentlig bare smak og behag i mindre programmer som dette, og er ikke så viktig å tenke på slikt med det første ihvertfall.

 

Dersom programmene imidlertid begynner å bli litt større, er det lettere for at de forskjellige navnene "kræsjer" ved at flere objekter, klasser, funksjoner, e.l. har samme navn.

 

Pga. disse "navne-kræsjene" introduserte C++ en ny ting kalt namespace. Disse gjør at man kan "skjule" de forskjellige navnene på klasser, objekter, osv., slik kompilatoren blir i stand til å kjenne igjen hvilke klasser, funksjoner, osv. vi ønsker. Dette gjør vi ved at vi spesifiserer hvilket namespace en klasse/objekt/osv. er definert i. Standardbibloteket til C++ ligger i namespace std, noe som gjør at vi må bruke std::cout når vi ønsker å referere til objektet cout.

 

Men, det finnes snarveier for dette. Ved å skrive en såkalt using-deklarasjon, sier man til kompilatoren at man vil bruke alt eller deler av et namespace:

 

using std::cout;    //dette er en using-deklarasjon

Gjør at vi kan skrive cout istedenfor std::cout (men vi siden det bare er std::cout vi sier at vi vil "åpne opp litt for", må vi fortsatt bruke std::-prefikset hvis vi f.eks. skal referere til std::cin.)

 

using namespace std;    //dette er også en using-deklarasjon

Dette "åpner opp for" hele namespace std. Altså, vi kan bruke alle funksjoner, objekter, osv. fra namespace std, uten å måtte bruke std::-prefikset.

 

Er litt usikker på hva du vet om namespaces , så jeg vet ikke om du visste dette fra før av eller ikke. :p

Lenke til kommentar

using namespace std;    //dette er også en using-deklarasjon

Dette "åpner opp for" hele namespace std. Altså, vi kan bruke alle funksjoner, objekter, osv. fra namespace std, uten å måtte bruke std::-prefikset.

 

5673682[/snapback]

 

ja var dette jeg lurte på skjønner du, hvorfor du ikke brukte denne setningen istede, men jeg formulerte meg jo veldig dårlig, men så ny som jeg er i c++ så visste jeg ikke alt dette om namespace, jeg trodde det bare eksisterte i denne kodelinjen, men det tok jeg visst grundig feil ;) men takker for all denne informasjonen!

(ikke bli helt forferdet over mine manglende kunnskaper, har kjøpt meg en bok og skal gå inn for å iallefall å lære meg godt med basiskunskap :) )

Lenke til kommentar
men så ny som jeg er i c++ så visste jeg ikke alt dette om namespace, jeg trodde det bare eksisterte i denne kodelinjen, men det tok jeg visst grundig feil wink.gif men takker for all denne informasjonen!

Bare hyggelig. :)

Er ikke så rart at man ikke helt forstår alt med en gang. Husker tilbake da jeg nettopp hadde begynt med C++, hehe. Var en del frustrerende og håpløse stunder der, ja. :p

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...