Jump to content

Recommended Posts

Posted

Olá pessoal! Gostaria de saber o meu erro neste código:

main(){
       int opcao,opcaoc1,opcaot1,opcaov1,;
       double mm,cm,km,m,valorc,valort,valorv,s,min,h,dia,mes,ano,kmh,ms;
       char medida[12]="quilometros";

       
       
    
       printf("\t   - MENU -\n\n");
       printf("   1 - Conversao de Comprimento\n");
       printf("   2 - Conversao de Tempo\n");
       printf("   3 - Conversao de Velocidade\n");
       scanf("%d",&opcao);
       scanf("%*[^\n]"); scanf("%*c");

       
       switch (opcao){
              case 1:
                   system("cls");
                   printf("\n\t\t\t- CONVERSAO DE COMPRIMENTO -\n\n\n\n\n");

                   printf("   > Qual o valor que se deseja converter? ");
                   scanf("%lf",&valorc);
                   scanf("%*[^\n]"); scanf("%*c");
                   
                   printf("\n\n\n   > Qual a unidade de medida deste valor?\n");
                   printf("\n   1 - Milimetros");
                   printf("\n   2 - Centimetros");
                   printf("\n   3 - Metros");
                   printf("\n   4 - Quilometros\n");
                   scanf("%d",&opcaoc1);
                   scanf("%*[^\n]"); scanf("%*c");
                   
                          switch (opcaoc1){
                                 case 1:
                                      km=valorc/1000000;
                                      cm=valorc/10;
                                      m=valorc/1000;
                                      mm=valorc;
                                      medida='quilometros'; // O ERRO ESTÁ AQUI SEGUNDO O COMPILADOR                          
                                     
                                 break;
                                 case 2:
                                      mm=10*valorc;
                                      m=valorc/100;                        
                                      km=valorc/100000;
                                      cm=valorc;
                                   
                                 break;
                                 case 3:
                                      mm=valorc*10000;
                                      cm=valorc/100;
                                      km=valorc/1000;
                                      m=valorc;
                                    
                                 break;
                                 case 4:
                                      mm=valorc*1000000;
                                      cm=valorc*100000;
                                      m=valorc*1000;
                                      km=valorc;
                                      
                                 break;
                                 default:
                      printf("\n\n  Opcao invalida! Reinicie programa...\n\n");
                                 break;
                                 }
                   
                               system("cls");
                               printf("\n\n\n\n\n   Resultados obtidos para %lf%s\n\n   Em milimetros: a %.2lfmm\n",valorc,medida,mm);
                               printf("   Em centimetros: %lfcm\n",cm);
                               printf("   Em metros: %lfm\n",m);
                               printf("   Em quilometros: %lfkm\n\n",km);
                     system("PAUSE");     
                     break;
}// E o código continua, mas o erro é aqui ...

Quando o programa vai imprimir "\n\n\n\n\n  Resultados obtidos para %lf%s\n\n  Em milimetros: a %.2lfmm\n",valorc,medida,mm)" o programa dá erro, e fecha. O que aconteceu?

Obrigado desde já!

Posted

Devias fazer debug em vez de executar. Ajudava-te a compreender onde está o erro e possivelmente a corrigi-lo 👍

Devias também ler sobre caracteres e strings em c (sobretudo como copiar cadeias de caracteres), e a diferença entre aspas e plicas.

Desaparecido.

Posted

Microsoft Visual C++ Compiler:

1>------ Build started: Project: Conversor de Medidas, Configuration: Debug Win32 ------

1>Linking...

1>LINK : fatal error LNK1561: entry point must be defined

1>Build log was saved at "file://c:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\Project1\Conversor de Medidas\Conversor de Medidas\Debug\BuildLog.htm"

1>Conversor de Medidas - 1 error(s), 0 warning(s)

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Bloodshed Dev C++:

Line: 50:46 C:\Documents and Settings\Administrator\Desktop\Stuff\Programação\Programas\Conversor.cpp [Warning] character constant too long for its type

C:\Documents and Settings\Administrator\Desktop\Stuff\Programação\Programas\Conversor.cpp In function `int main()':

Line: 50 C:\Documents and Settings\Administrator\Desktop\Stuff\Programação\Programas\Conversor.cpp incompatible types in assignment of `int' to `char[12]'

A linha 50 é esta (LINE 50): medida='quilometros';  --> Eu já coloquei entre aspas normais, e dá isso:

Line: 50 C:\Documents and Settings\Administrator\Desktop\Stuff\Programação\Programas\Conversor.cpp ISO C++ forbids assignment of arrays

O que eu faço?! Algum problema quando declarei a string? O que é?!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.