Δημοσιεύτηκε: 23 Ιούλ 2011, 20:22
από Qdata
stamatiou έγραψε:Αυτός ο κώδικας τι πρόβλημα έχει;
Κώδικας: Επιλογή όλων
#include <stdio.h>

int fahr_2_celsius(int fahr)
{
float celsius = (5.0/9.0) * (fahr - 32);
return celsius;
}

int main(void)
{
int fahr;
printf("FAHR TO CELSIUS TABLE - THE C PROGRAMMING LANGUAGE\n");
for(fahr = 0;fahr <= 300;fahr += 20)
{
printf("%3d %6.1f\n",fahr,fahr_2_celsius(fahr));
}
return 0;
}


και μου βγάζει error
Κώδικας: Επιλογή όλων

warning: format ‘%6.1f’ expects type ‘double’, but argument 3 has type ‘int’

Edit: :oops:
Επίσης μήπως μπορεί να μου εξηγήσει κάποιος τον παρακάτω κώδικα:

Κώδικας: Επιλογή όλων
int atoi(char s[])
{
int i,n;
n = 0;
for (i = 0; s[i] >= '0' && s[i] <= '9'; ++i)
n = 10 * n + (s[i] - '0');
return n;
}

Δεν καταλαβαίνω τι κάνει το s[i] >= '0' && s[i] <= '9' και το n = 10 * n + (s[i] - '0')


Σου πετάει το Error γιατί η συνάρτηση fahr_2_celsius είναι τύπου int ενώ εσύ δήλωσες στο αλφαριθμητικό μορφοποίησης ότι η printf() πρέπει να περιμένει τύπο float.Οπότε κάνε την συνάρτησή σου τύπου float.