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();
}
}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();
}
}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);
~^
%dKolme 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)).
Aihe on jo aika vanha, joten et voi enää vastata siihen.