Principiante em C

Desculpe mas eu não entendo muito o português de Portugal...risos.
Quero saber onde exatamente errei no meu código que mandei d eprimeira:
int main()
{
float R, N;

printf("Por favor digite um numero real: ");
fflush(stdout);

scanf("%f", &N);
fflush(stdin);

R = N;
for (i=0; i<1000, R>0; i++)

R = (R + N/R) / 2;
printf("\nRaiz de %f = %f", N, R);
fflush(stdout);

return 0;
}
 
1º erro - estás a usar a variável i no for mas não a declaraste.

2º erro - retira o R>0 do for

Já expliquei atrás como passar de for para while e vice-versa
 
Da uma olhada vê se esqueci de algo:

int main()
{
float R, N;
unsigned int i;

printf("Por favor digite um numero real: ");
fflush(stdout);

scanf("%f", &N);
fflush(stdin);

R = N;
for (i=0; i<1000, R>0; i++)

R = (R + N/R) / 2;
printf("\nRaiz de %f = %f", N, R);
fflush(stdout);

return 0;
}
 
Esqueci de tirar o R>0

int main()
{
float R, N;
unsigned int i;

printf("Por favor digite um numero real: ");
fflush(stdout);

scanf("%f", &N);
fflush(stdin);

R = N;
for (i=0; i<1000, i++)

R = (R + N/R) / 2;
printf("\nRaiz de %f = %f", N, R);
fflush(stdout);

return 0;
}
 
Agora acho que vai dar hein.

int main()
{
float R, N;
unsigned int i;

printf("Por favor digite um numero real: ");
fflush(stdout);

scanf("%f", &N);
fflush(stdin);

R = N;
for (i=0; i<1000; i++)

R = (R + N/R) / 2;
printf("\nRaiz de %f = %f", N, R);
fflush(stdout);

return 0;
}
 
No while basta pensares na lógica da palavra. "While" é inglês para "enquanto" por isso o que tu queres é que se faça XYZ enquanto o i for menor que 1000.
Estas linguagens são sempre bastante lógicas, basta pensares nisso, tu nesse for tens o mesmo, "para" o i = 0 até 999 (999 porque tens < 1000) faz XYZ.
 
Veja se esta certo:
Número: 10001111 (-113) : note que o primeiro número é 1 e quando é 1 quer dizer que o número em questão é negativo.
Esse número esta em complemento de dois e o professor quer saber o decimal.
1º: Tudo que for 1 mudo para 0, e tudo que for 0 mudo para 1, sendo assim ficando: 01110000
2º: Soma mais 1 no final, ficando: 01110001 (113).
Acho que consegui.
 
Back
Topo