Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Apua koodiin

Enosaa [21.09.2017 11:50:13]

#

Mikä tässä on vikana??

#include<stdio.h>
#include<string.h>

void main(void)
{
    int kappale1=0, pisteet;
    int i, j;

 for(j=1;j<=5;j++){
    for(i=1;i<=j;i++){
        printf("Anna pisteet: ");
          scanf("%s", &pisteet);
          kappale1=kappale1+pisteet;
    }
    printf("Pisteet %c on %s\n",j,kappale1);
    kappale1=0;
getchar();
  }
}

peran [21.09.2017 15:56:57]

#

Enosaa kirjoitti:

Mikä tässä on vikana??

Puuttuu koodi-tagit, ja pari typoa...

#include<stdio.h>
#include<string.h>

void main(void)
{
    int kappale1=0, pisteet;
    int i, j;

 for(j=1;j<=5;j++){
    for(i=1;i<=j;i++){
        printf("Anna pisteet: ");
          scanf("%i", &pisteet);
          kappale1=kappale1+pisteet;
    }
    printf("Pisteet %c on %i\n",j,kappale1);
    kappale1=0;
getchar();
  }
}

Metabolix [21.09.2017 16:17:27]

#

Katsotaanpa, mitä kääntäjä sanoo koodistasi:

tmp.c:4:6: warning: return type of ‘main’ is not ‘int’ [-Wmain]
 void main(void)
      ^~~~
tmp.c: In function ‘main’:
tmp.c:12:19: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int *’ [-Wformat=]
           scanf("%s", &pisteet);
                  ~^   ~~~~~~~~
                  %ls
tmp.c:15:28: warning: format ‘%s’ expects argument of type ‘char *’, but argument 3 has type ‘int’ [-Wformat=]
     printf("Pisteet %c on %s\n",j,kappale1);
                           ~^
                           %d

Kolme virhettä siis: Lukujen oikea formaatti on %d eikä %s (sekä scanf- että printf-kohdassa), ja main-funktion paluuarvon tyyppinä tulee olla int eikä void (eli alun pitää olla int main(void)).

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta