Problemas com linguagem C

10 respostas
K

amigos fiz este código em linguagem c porem a instrução while não funciona como eu queria. O que desejo é que se a pessoa digitar [color=red]SIM[/color]o progama repete se digitar [color=red]NÃO[/color] o programa finaliza!!!!

Estou usando Dec++ mas já tentei no turbo pascal e não obtive resultado se alguem puder me auxiliar eu agradeço.

#include <stdio.h>// Pacote para entrada e saida
#include <stdlib.h>
#include <conio.h>

// INICIO DA EXECUÇAO EM C "METODO MAIN"
int main(int argc, char *argv[]){
        double fahrenheit, celsius, fim;
        char resp[10]; 
       	
		// zerando as variáveis								
		fahrenheit= 0; celsius= 0; 
							        
        do{
             printf("Digite uma temperatura em Fahrenheit.: ");
           	 scanf("%d",&fahrenheit);
           	 celsius = 5 * (fahrenheit-32) / 9;
           	 printf("Temperatura em Celsius e: %i\n\n",celsius);
           	 printf("Deseja continuar? (S/N) .: ");
           	 scanf("%s",resp);
           	 printf("\n\n");
          	 printf("Resposta \n=  ",&resp);
          	 
         }while(resp == "sim");
       
          
      system("pause");
      return(0);
}

10 Respostas

L

ola,

Use a função strcmp para comparar duas strings. Ela recebe duas string e retorna zero se elas forem iguais.
http://www.cplusplus.com/reference/clibrary/cstring/strcmp/

Alkamavo
#include <stdio.h>// Pacote para entrada e saida  
#include <stdlib.h>  
#include <conio.h>  
   
 // INICIO DA EXECUÇAO EM C "METODO MAIN"  
 int main(int argc, char *argv[]){  
         double fahrenheit, celsius, fim;  
         char resp[10];   
          char answer= "sim";

         // zerando as variáveis                               
         fahrenheit= 0; celsius= 0;   
                                       
         do{  
              printf("Digite uma temperatura em Fahrenheit.: ");  
              scanf("%d",&fahrenheit);  
              celsius = 5 * (fahrenheit-32) / 9;  
              printf("Temperatura em Celsius e: %i\n\n",celsius);  
              printf("Deseja continuar? (S/N) .: ");  
              scanf("%s",resp);  
              printf("\n\n");  
              printf("Resposta \n=  ",&resp);  
                
          }while(strcmp (answer, resp) != 0);  
          
             
       system("pause");  
       return(0);  
}
xxjamisxx

[code]#include // Pacote para entrada e saida
#include
#include

// INICIO DA EXECUÇAO EM C "METODO MAIN"
int main(int argc, char *argv[]){
double fahrenheit, celsius, fim;
char resp[10];

// zerando as variáveis
fahrenheit= 0; celsius= 0;

do{
printf("Digite uma temperatura em Fahrenheit.: ");
scanf("%d",&fahrenheit);
celsius = 5 * (fahrenheit-32) / 9;
printf("Temperatura em Celsius e: %i\n\n",celsius);
printf("Deseja continuar? (S/N) .: ");
scanf("%s",&resp); // vc esqueceu do operado & e comecial que acha o endereço de memoria
printf("\n\n");
printf("Resposta \n= %lf ",resp); ir o lf pq e double

}while(resp == "sim");


system("pause");
return(0);
}

xxjamisxx
[code]#include <stdio.h>// Pacote para entrada e saida 
#include <stdlib.h> 
#include <conio.h> 

// INICIO DA EXECUÇAO EM C "METODO MAIN" 
int main(int argc, char *argv[]){ 
double fahrenheit, celsius, fim; 
char resp[10]; 

// zerando as variáveis 
fahrenheit= 0; celsius= 0; 

do{ 
printf("Digite uma temperatura em Fahrenheit.: "); 
scanf("%d",&fahrenheit); 
celsius = 5 * (fahrenheit-32) / 9; 
printf("Temperatura em Celsius e: %i\n\n",celsius); 
printf("Deseja continuar? (S/N) .: "); 
scanf("%s",&resp); // vc esqueceu do operado & e comecial que acha o endereço de memoria 
printf("\n\n"); 
printf("Resposta \n= %lf ",resp); ir o lf pq e double 

}while(resp == "sim"); 


system("pause"); 
return(0); 
}
xxjamisxx
K

A todos que ajudaram eu agradeço a força. Especialmente a dica de nosso amigo [color=red] xxjamisxx[/color]

foi mais um conhecimento adquirido.

Um abraço a todos.

[color=red]Resolvido[/color]

xxjamisxx

opa cara precisar so pergunta adoro
c
tambem primeira linguagem de programaçao que aprendir
^^
flw abraço

Rafael_Marques1

só lembre-se que em C vc trabalha com array de char e não string…
vc nunca vai conseguir comparar ou atribuir uma “string” diretamente…

sempre que precisar fazer algo do tipo, procure as funções relacionadas…

uma boa fonte de consulta é: www.cplusplus.com

:wink:

xxjamisxx

verdade isso ^^

ViniGodoy

Só cuidado que essa é uma fonte de C++, não só C. Então, alguns headers podem exigir declaração .h, diferente do que as vezes aparece no site.

E, se você estiver usando C++, e não C, aí sim, existe a classe std::string. :slight_smile:

Criado 2 de novembro de 2009
Ultima resposta 7 de nov. de 2009
Respostas 10
Participantes 6