|
| Hjælp til C Fra : Michael |
Dato : 19-11-07 22:18 |
|
Hej
Jeg skal have lavet et program som tæller til 100, og når den når til 50
skal den skrive "Nu er vi halvvejs".
Jeg har skrevet dette, men det er kun til 50 kan ikke lige hitte ud at det
sidste.
#include <stdio.h>
int main()
{
int i=1;
while(i<51)
{
printf("%d\n", i);
i=i+1;
}
if(i==51)
printf("%s\n", "Nu er vi halvvejs");
return 0;
}
| |
Kim Schulz (19-11-2007)
| Kommentar Fra : Kim Schulz |
Dato : 19-11-07 22:21 |
|
On Mon, 19 Nov 2007 22:17:44 +0100
"Michael" <overblik@hotmail.com> wrote:
> Hej
>
> Jeg skal have lavet et program som tæller til 100, og når den når til
> 50 skal den skrive "Nu er vi halvvejs".
>
> Jeg har skrevet dette, men det er kun til 50 kan ikke lige hitte ud
> at det sidste.
> #include <stdio.h>
>
> int main()
>
> {
> int i=1;
> while(i<51)
> {
> printf("%d\n", i);
> i=i+1;
> }
> if(i==51)
> printf("%s\n", "Nu er vi halvvejs");
>
>
>
>
> return 0;
> }
>
>
lyder som en skoleopgave? vil tro de står iblandt de først 20-25 sider
af din undervisningsbog.
--
Kim Schulz | Blog: http://www.schulz.dk/
Email: Kim@schulz.dk | Work: http://www.devteam.dk/
Phone: +45 5190 4262 | Fun : http://www.chilifan.dk/
| |
Michael (19-11-2007)
| Kommentar Fra : Michael |
Dato : 19-11-07 22:28 |
|
Det er nu ikke en skole opgave, jeg prøver at lære mig selv C sproget, og
har fået fingre i bogen C/C++ grundbog i programmering
"Kim Schulz" <kim@schulz.dk> skrev i en meddelelse
news:20071119222110.7f79abea@laptopia...
On Mon, 19 Nov 2007 22:17:44 +0100
"Michael" <overblik@hotmail.com> wrote:
> Hej
>
> Jeg skal have lavet et program som tæller til 100, og når den når til
> 50 skal den skrive "Nu er vi halvvejs".
>
> Jeg har skrevet dette, men det er kun til 50 kan ikke lige hitte ud
> at det sidste.
> #include <stdio.h>
>
> int main()
>
> {
> int i=1;
> while(i<51)
> {
> printf("%d\n", i);
> i=i+1;
> }
> if(i==51)
> printf("%s\n", "Nu er vi halvvejs");
>
>
>
>
> return 0;
> }
>
>
lyder som en skoleopgave? vil tro de står iblandt de først 20-25 sider
af din undervisningsbog.
--
Kim Schulz | Blog: http://www.schulz.dk/
Email: Kim@schulz.dk | Work: http://www.devteam.dk/
Phone: +45 5190 4262 | Fun : http://www.chilifan.dk/
| |
Peter Makholm (19-11-2007)
| Kommentar Fra : Peter Makholm |
Dato : 19-11-07 22:32 |
|
"Michael" <overblik@hotmail.com> writes:
> #include <stdio.h>
>
> int main()
>
> {
> int i=1;
> while(i<51)
> {
> printf("%d\n", i);
> i=i+1;
> }
> if(i==51)
> printf("%s\n", "Nu er vi halvvejs");
Hvad forventer du at der sker mellem ovenstående linje ...
>
>
>
>
.... og nedenstående?
> return 0;
> }
Ikke meget vel?
| |
N (19-11-2007)
| Kommentar Fra : N |
Dato : 19-11-07 22:33 |
|
> Jeg skal have lavet et program som tæller til 100, og når den når til 50
> skal den skrive "Nu er vi halvvejs".
>
> Jeg har skrevet dette, men det er kun til 50 kan ikke lige hitte ud at
> det sidste.
Dette kunne være en måde. Der er mange andre.
#include <stdio.h>
const int max=100;
void main()
{
int i;
for(i=0; i<max; i++)
{
printf("%d\n",i);
if(max/2 == i)
puts("halvvejs");
}
}
| |
Kent Friis (19-11-2007)
| Kommentar Fra : Kent Friis |
Dato : 19-11-07 22:50 |
|
Den Mon, 19 Nov 2007 22:32:54 +0100 skrev N:
>> Jeg skal have lavet et program som tæller til 100, og når den når til 50
>> skal den skrive "Nu er vi halvvejs".
>>
>> Jeg har skrevet dette, men det er kun til 50 kan ikke lige hitte ud at
>> det sidste.
>
> Dette kunne være en måde.
Nej.
> void main()
Manden er totalt nybegynder, og så forsøger du at lære ham at gøre
tingene forkert...
DER ER IKKE NOGET DER HEDDER "void main".
Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).
| |
Michael (19-11-2007)
| Kommentar Fra : Michael |
Dato : 19-11-07 23:06 |
|
Ja, jeg var rimelig lost der hehe
Måske en anden har et bud?
"Kent Friis" <nospam@nospam.invalid> skrev i en meddelelse
news:474204ec$0$90271$14726298@news.sunsite.dk...
> Den Mon, 19 Nov 2007 22:32:54 +0100 skrev N:
>>> Jeg skal have lavet et program som tæller til 100, og når den når til 50
>>> skal den skrive "Nu er vi halvvejs".
>>>
>>> Jeg har skrevet dette, men det er kun til 50 kan ikke lige hitte ud at
>>> det sidste.
>>
>> Dette kunne være en måde.
>
> Nej.
>
>> void main()
>
> Manden er totalt nybegynder, og så forsøger du at lære ham at gøre
> tingene forkert...
>
> DER ER IKKE NOGET DER HEDDER "void main".
>
> Mvh
> Kent
> --
> "So there I was surrounded by all these scary creatures
> They were even scarier than what Microsoft call features"
> - C64Mafia: Forbidden Forest (Don't Go Walking Slow).
| |
N (19-11-2007)
| Kommentar Fra : N |
Dato : 19-11-07 23:11 |
|
> DER ER IKKE NOGET DER HEDDER "void main".
Jo i min gamle "C" er der. Ellers brokker den sig pga manglende return
Nej ok, det var lige en hurtig een. Det var for ikke at han skulle have
diverse warnings, når nu han tilsyneladende er ny.
Og hvad pokker, et eller andet sted skal vi jo alle starte.
Og jeg "lærte" faktisk dette tilbage da jeg begyndte at rode med "C" (på
Amiga).
Og ja, der er løbet meget vand i søen siden (Læs: meget er ændret siden, men
jeg er IKKE fulgt med).
Sorry, en anden gang skal jeg nok lade Jer andre svarer. Jeg holder mig
passiv, da jeg er blevet "Obsolete" i C.
| |
Mogens Hansen (20-11-2007)
| Kommentar Fra : Mogens Hansen |
Dato : 20-11-07 08:22 |
|
"N" <nuller@goj.net> wrote in message
news:474209af$0$2108$edfadb0f@dtext02.news.tele.dk...
[8<8<8<]
> Jo i min gamle "C" er der. Ellers brokker den sig pga manglende return
>
>
C har aldrig tilladt "void main()".
Hvad diverse compilere har tilladt er en anden sag - det har blot ikke noget
med programmeringssproget C at gøre.
--
Venlig hilsen
Mogens Hansen
| |
Kent Friis (20-11-2007)
| Kommentar Fra : Kent Friis |
Dato : 20-11-07 17:42 |
|
Den Mon, 19 Nov 2007 23:10:30 +0100 skrev N:
>> DER ER IKKE NOGET DER HEDDER "void main".
>
> Jo i min gamle "C" er der. Ellers brokker den sig pga manglende return
Du har ikke overvejet den mulighed at den brokker sig over manglende
return netop *fordi* du mangler en return?
Compileren har jo ret.
Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).
| |
Michael Zedeler (19-11-2007)
| Kommentar Fra : Michael Zedeler |
Dato : 19-11-07 23:56 |
|
Michael wrote:
> Jeg skal have lavet et program som tæller til 100, og når den når til 50
> skal den skrive "Nu er vi halvvejs".
>
> Jeg har skrevet dette, men det er kun til 50 kan ikke lige hitte ud at det
> sidste.
Du kan finde fejlen hvis du lærer dig selv at indentere din kode.
Læs dette her:
http://en.wikipedia.org/wiki/Indent_style#K.26R_style
Mvh. Michael.
| |
Kent Friis (20-11-2007)
| Kommentar Fra : Kent Friis |
Dato : 20-11-07 17:44 |
|
Den Mon, 19 Nov 2007 23:56:02 +0100 skrev Michael Zedeler:
> Michael wrote:
>> Jeg skal have lavet et program som tæller til 100, og når den når til 50
>> skal den skrive "Nu er vi halvvejs".
>>
>> Jeg har skrevet dette, men det er kun til 50 kan ikke lige hitte ud at det
>> sidste.
>
> Du kan finde fejlen hvis du lærer dig selv at indentere din kode.
Nej, prøv at kigge på starten af hans while(). Det var også min første
tanke, men han er slet ikke nået så langt.
Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).
| |
Michael Zedeler (20-11-2007)
| Kommentar Fra : Michael Zedeler |
Dato : 20-11-07 21:39 |
|
Kent Friis wrote:
> Den Mon, 19 Nov 2007 23:56:02 +0100 skrev Michael Zedeler:
>> Michael wrote:
>>> Jeg skal have lavet et program som tæller til 100, og når den når til 50
>>> skal den skrive "Nu er vi halvvejs".
>>>
>>> Jeg har skrevet dette, men det er kun til 50 kan ikke lige hitte ud at det
>>> sidste.
>> Du kan finde fejlen hvis du lærer dig selv at indentere din kode.
>
> Nej, prøv at kigge på starten af hans while(). Det var også min første
> tanke, men han er slet ikke nået så langt.
Der er selvfølgelig lige det at løkken gennemløbes 50 gange, imens hans
forsøg på at skrive "Nu er vi halvvejs" sker når han når til nummer 51
(ikke ligefrem halvvejs igennem løkken), men det tror jeg ikke er så
vigtigt at pointere. Lige nu ser det ikke ud til at han har forstået den
grundliggende struktur i programmet - så er det for tidligt overhovedet
at snakke om hvilke parametre, der indgår.
Mvh. Michael.
| |
Kent Friis (20-11-2007)
| Kommentar Fra : Kent Friis |
Dato : 20-11-07 17:50 |
|
Den Mon, 19 Nov 2007 22:17:44 +0100 skrev Michael:
> Hej
>
> Jeg skal have lavet et program som tæller til 100, og når den når til 50
> skal den skrive "Nu er vi halvvejs".
>
> Jeg har skrevet dette, men det er kun til 50 kan ikke lige hitte ud at det
> sidste.
> #include <stdio.h>
>
> int main()
>
> {
> int i=1;
> while(i<51)
> {
> printf("%d\n", i);
> i=i+1;
> }
> if(i==51)
> printf("%s\n", "Nu er vi halvvejs");
>
> return 0;
> }
Når du når ned til if(i==51), ved du allerede at i er 51 (havde den
været mindre, ville while-løkken jo have kørt en gang til.
Der er to muligheder:
Den første er kopiere den øverste blok ned under printf, og simpelthen
tælle videre.
Den anden, som giver halvt så meget kode, og som dit check på if(i==51)
kunne tyde på du har tænkt i den retning, er at ændre din while
til while(i<101), og så flytte if(i==51) printf(...); op indenfor
den inderste { } blok.
Den sidste er den løsning en lærer vil se, cut'n'paste trækker ned
- og med god grund. Det er måske den nemmeste løsning når man skriver
koden, men når man senere er noget op på 10.000 linjer, og skal lave
en lille ændring, så er det ikke videre smart at skulle til at lave
den samme ændring 275 steder i programmet.
Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).
| |
|
|