sinkz 0 Denunciar post Postado Setembro 3, 2014 Galera to com uma dificuldade, nao to conseguindo retornar um valor char. Olha o exercicio:Me ajudem se possivel, obrigado /* 14- Escreva uma função que receba um código de linguagem como parâmetro (um valor inteiro e 1 a 5) e em função deste código retorne a expressão "Bem vindo" em 5 idiomas diferentes.*/ #include <stdlib.h> #include <stdio.h> char idioma(int num){ char idi[10]; if(num==1){ idi[10]="Welcome"; } return idi; } int main(){ int num; char res, id; printf("1-Ingles\n2-Japones\n3-Alemão\n4-Portugues\n5-Italiano\nEntre com uma opcao: "); scanf("%d", &num); idioma(num); printf("Bem vindo = %s", idioma(id)); system("PAUSE"); return 0; Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Setembro 3, 2014 Vc está retornando um char. O correto é retornar um char * (ou sequência de strings). char * idioma(int num){ const char frases[5][20] = {'Welcome','???','??','Bem-vindo','Benvenuto'}; return frases[num+1]; } Compartilhar este post Link para o post Compartilhar em outros sites
sinkz 0 Denunciar post Postado Setembro 3, 2014 Continua dando erro, 8 C:\Users\AMF SERVIDOR\Desktop\Diego\Estrutura de Dados\Lista 4\Funçoes\Exercicios\Ex14L4.cpp [Error] invalid conversion from `const char*' to `char*' Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Setembro 4, 2014 Mude o tipo de retorno para const char *. Compartilhar este post Link para o post Compartilhar em outros sites
CL4nG 36 Denunciar post Postado Setembro 4, 2014 char *idioma(int num){ switch(num) { case 1: return "Welcome"; case 2: return "Bem Vindo"; }}#include <stdio.h>int main(){ printf("%s\n", idioma(2)); return 0;} Compartilhar este post Link para o post Compartilhar em outros sites
Mateus GP 13 Denunciar post Postado Setembro 11, 2014 você está retornando um char. O correto é retornar um char * (ou sequência de strings). char * idioma(int num){ const char frases[5][20] = {'Welcome','???','??','Bem-vindo','Benvenuto'}; return frases[num+1]; } const char* idioma(int num) { static const char frases[5][16] = {"Welcome", "???", "??", "Bem-vindo", "Benvenuto"}; return frases[num - 1]; } Compartilhar este post Link para o post Compartilhar em outros sites
Carlos Diones 1 Denunciar post Postado Outubro 1, 2014 /* 14- Escreva uma função que receba um código de linguagem como parâmetro *(um valor inteiro e 1 a 5) e em função deste código retorne a expressão *"Bem vindo" em 5 idiomas diferentes. */ #include <stdio.h> #include <stdlib.h> /* system("exit") system("cls")*/ void chamar(void); void idioma( int a) { switch (a) { case 1: system("cls"); printf("Welcome!"); break; case 2: system("cls"); printf("Kangei!"); break; case 3: system("cls"); printf("Bem-vindo!"); break; case 4: system("cls"); printf("Benvenuto!"); break; case 5: system("cls"); printf("Willkomen!"); break; default: chamar(); } } void chamar(void) /* Função caso digite numero errado */ { int tentar; system("cls"); printf("Tente um numero valido: \n"); scanf("%d", &tentar); idioma(tentar); } int main(void) { system("title SAUDACOES"); system("cls"); int escolha, loop = 0; printf("<1> Ingles\n<2> Japones\n<3> Portugues\n<4> Italiano\n<5> Alemao\n\nDigite sua opcao:\n"); scanf("%d", &escolha); while(loop == 0) { idioma(escolha); if ( loop == 0) { idioma(escolha); printf("\n\nMenu? \n\n<0> Sim\n\n"); scanf ("%d", &loop); if(loop == 0) { main(); }else { system("exit"); } } else { return EXIT_SUCCESS; } } return EXIT_SUCCESS; } Este programa exibe o menu para que possa se escolher a opção, mostra a mensagem e logo depois pergunta ao usuário se quer repetir as operações novamente. Criei a função void idioma( int a ) que entra com um argumento e checa o inteiro e se corresponde com as opções definidas no bloco do switch. Por padrão se a opção selecionada não for as estabelecidas no menu, o programa solicita o usuário para entrar com um valor satisfatótio e retorna para o menu . Compartilhar este post Link para o post Compartilhar em outros sites