Ir ao conteúdo

[C]-Dúvida em exercício


Ir à solução Resolvido por Arm Outro,

Posts recomendados

Postado

Olá galera, sou novo na programação e meu exercício é o seguinte:

Fazer uma função para gerar uma tabela de conversão de temperaturas de 1 a 100 de 0,5 em 0,5 graus da escala Celsius-C para a escala Fahrenheit – F, segundo a fórmula F=(9C/5)+32.

Então montei esse código:

#include <stdio.h>int main(){float C[100];float F[100];int i;int j;for(i=0;i<200;i++)    for (j=0;j<200;j++){        C[1]=1;        C[i]=C[i-1]+0.5;F[j]=1.8*C[i]+32;}printf("\n%.2f | %.2f",C[i],F[j]);system("pause");return 0;}

E toda vez que tento rodar ele, ele para de funcionar. Alguém pode me dizer o porque e como corrigir?

Obrigado pela atenção!

 
  • Solução
Postado

O erro está nessa parte C[i]=C[i-1]+0.5, como na primeira iteração do loop for a variável i = 0. Então onde está C[i-1] seria igual a C[-1] e índice negativo não existe, por isso o erro.

Você também não precisa de usar dois loops for, precisa de apenas um.

O tamanho dos arrays tem que ser 199, porque é de 0.5 a 0.5 e vão de 1 a 100.

#include <stdio.h>int main(){	float C[199];	float F[199];	int i;	C[0]=1;	F[0]=1.8*C[0]+32;	for(i=1; i<199; i++){		C[i]= C[i-1]+0.5;		F[i]=1.8*C[i]+32;	}	//imprime os valores	for(i = 0; i < 199; i++)		printf("\n%.2f | %.2f", C[i], F[i]);	system("pause");	return 0;}
  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...