
RonaldoRG
Membros-
Total de itens
259 -
Registro em
-
Última visita
Tudo que RonaldoRG postou
-
Imprimir o maior e o menor valor - Linguagem C
pergunta respondeu ao Bruno Pacheco de RonaldoRG em C, C++
Para mudar o valor das variaveis maior e menor do main na função maior_menor você coloca na definição da função o &: int maior_menor(int d, int e, int f, int n, int &maior, int &menor ) { ... } O restante deixa como tá e compila. Se aparecer outro erro você posta aqui. Abraço. -
Vou ver se eu consigo te explicar onde tá o erro. Ele tá aqui nessa função: void empilhar(pilha *tElemento) { ... tElemento = ((pilha*)malloc(sizeof(pilha))); ... int main() { pilha *tElemento; ... empilhar(tElemento); ... Você criou um ponteiro em main e passou ele pra empilhar. Lá a variável tElemento recebe uma alocação de memória criada pelo malloc. Mas só que essa alocação não é passada para tElemento de main. Quando a função empilhar acaba a variavel tElemento morre e leva junto a alocação feita lá. Você tem que alocar primeiro na função main passar tElemento para a função empilhar, e lá fazer as modificações do conteúdo de tElemento. Ai sim elas vão refletir em main. Espero que tenha entendido. qualquer dúvida posta ai. Abraço.
-
Se é um bem "tosqueira" então agente pode começar com uma matriz grande: char texto[MAX_LINHA][MAX_COLUNAS]; Onde cada linha vai armazenar uma linha do seu texto. Ai pra ir entrando com cada linha do texto, você faz um for: for(i = 0; i < MAX_LINHA; i++) { gets(texto[i]); } Agora tem que ter cuidado pra não digitar uma linha com mais caracteres do que MAX_COLUNA. Eu dei a dica da matriz porque no futuro você queira salvar o texto em um arquivo. Bom essa é uma maneira de fazer. Daqui a pouco o pessoal do forum lhe diz outras. Abraço.
-
Porque o protótipo da função é essa: char * strcpy ( char * destino, const char * origem ) Ela foi feita pra copiar uma string para outra, e não matrizes. Agora achei nesse tópico http://scriptbrasil.com.br/forum/index.php...61&hl=qsort um post seu com a mesma dúvida. Você testou o código que o Durub postou? Testa ai pra ver se funciona e posta o resultado. Abraço.
-
Não entendi essa parte: ... data = d,m,a; ... Dê uma olhada nas funções da time.h: http://www.cplusplus.com/reference/clibrary/ctime/ Abraço.
-
Seria bom se você postasse a saída do compilador pra agente identificar onde está errado. Abraço.
-
Você entra com os quatro números. Soma os dois primeiros e multiplica os dois últimos. Depois compara os dois valores usando ifs. Depois posta o código. Abraço.
-
Tem alguns erros nesse seu código novo. //// Troca esse if (strcmp(strings[count],strings[count2])>0 <= Faltou um parentese no final //// Por esse if (strcmp(strings[count],strings[count2])>0) A função strcpy copia arrays e não matrizes, por isso você deve declarar "aux" assim: char aux[30]; Pelo que me lembro, a pessoa entra com 5 strings. Mas pelo seu código só vai entrar com um só. Então teria que acrescentar um for: for(cont = 0; cont < 5; cont++) { printf("\n\nDigite uma string:"); gets(strings[count]); } Você editou seu primeiro post e não sei mais o que seu programa deve fazer. Esse seu código agora tá meio confuso. Cadê o código que você postou inicialmente? Ele funcionou certinho aqui. Qualquer coisa retorna. Abraço.
-
Isso não existe em C "int [a,b]". Você armazena em duas variaveis o maior valor e o menor valor, respectivamente. Depois você usa um for para a variável i, do menor valor até o maior valor. Se i % 2 != 0 então é impar, imprime esse valor. Posta o resultado. Abraço.
-
Testei seu código aqui e deu certo, imprimiu direitinho. Como é que tá saindo ai? Posta o resultado.
-
Use o comando srand ( time(NULL) ) antes do rand(): #include <stdio.h> #include <time.h> int main () { srand ( time(NULL) ); int var = rand() % 10 + 1; printf("O número sorteado de um a 10 foi %d",var); }
-
O que ela quer é que o usuário digite 12 números e que o programa diga a porcentagem de números que estão no intervalo de 1 a 20, a porcentagem de 21 a 40, e assim vai. Ai você vai ler os 12 números, depois com um for de 0 a 11, você usa uns ifs para contar quantos números estão em cada intervalo. Depois é só calcular a porentagem. ... for(i = 0; i < 12; i++) { if(vetor[i] >= 1 && vetor[i] <= 20) intervalo1++; ... if(vetor[i] >= 61 && vetor[i] <= 100) intervalo4++; } ...
-
O erro tá no "OU", em C se usa "||". Para "AND" se usa "&&". Concerta ai e retorna. Abraço.
-
Até ai ele só define um array do tipo pilha e não faz mais nada.
-
Tem em C a função exponencial (e^x): exp(x+x);
-
Pelo seu código x é o retorno da função maximo1, ai ele compara com o valor do vetor na posição anterior a n. É como se ele estivesse fazendo assim: x = v[0]; x = maior(x, v[1]); x = maior(x, v[2]); x = maior(x, v[3]); ... x = maior(x, v[n-1]); x é o maior valor do vetor v.
-
Primeiro você tem que alocar memória para o ponteiro frase: char *frase = new char[DIM_FRASE]; E pra que na função "funcao" você botou isso: scanf("%c", &caractere); Pra que ler "caractere" de novo se você passou ele pra função? Concerta e posta o resultado. Abraço.
-
Comece pela entrada de dados: Leia o número de litros e o tipo de combustível. Depois use if ou switch para selecionar o tipo de combustível para efetuar o cálculo do desconto; Efetue os cálculos e depois mostre os resultados. Depois posta o código que a gente vai te orientando. Abraço.
-
Agora é só usar a matemática: Área = largura * Comprimeto Depois posta o código.
-
Observe que as chamadas da função maximo1, o primeiro parâmetro é n-1. Então as sucessivas chamadas desta função sempre decrementarão 1. Deixa eu ver se eu consigo te explicar: Por exemplo se n for inicialmente 5. Primeira chamada da função maximo1 -> maximo1(5, v) Ela chama ela mesmo -> maximo1(5-1, v) ou maximo1(4, v) Ela chama ela mesmo -> maximo1(4-1, v) ou maximo1(3, v) Ela chama ela mesmo -> maximo1(3-1, v) ou maximo1(2, v) Ela chama ela mesmo -> maximo1(2-1, v) ou maximo1(1, v) Como n == 1 retorna o v[0] Então todas essas chamadas são empilhadas e a partir do retorno da última ela vem retornando uma a uma até a primeira chamada. Bom é meio difícil pra mim te explicar aqui, mas se você for seguido os passos do seu código e colocar os resultados no papel você vai entender. Qualquer coisa posta sua dúvida de novo. Abraço.
-
A função maximo1 tá chamando ela mesma, e essas chamadas vão se empilhando até que n seja 1, dai ela vai se desempilhando até o começo. Seu código tá dando erro ou você só quer saber o funcionamento?
-
No caso você quer passar uma matriz, então faz assim: void funcao(int v[][4]) { ... } int main() { int v[4][4]; funcao(v); ... } Você tem que definir na função pelo menos o número de colunas da matriz que ela vai receber. Abraço.
-
Ao invés desse: for (i=0;i<10;i++) { troca = pos[i]; pos[i] = pos[19-i]; pos[19-i] = troca; } Coloca esse: for (i=0;i<10;i++) { troca = pos[i]; pos[i] = pos[i+10]; pos[i+10] = troca; } Você se confundiu um pouco com os índices. Qualquer coisa retorna. Abraço.
-
Acho que seu erro tá aqui: for(i=0;i<i;i++) // i<i ??? Neste caso você deve declarar um outro contador para o for, como um j: for(int j=0; j<i; j++) Ou mudar o nome da variável i, por exemplo, para ContDest, ou outra coisa que identificasse a função dela, que é de contar o número de destinatários. Se não for isso dá um retorno. Abraço.
-
Em C não se usa potência dessa forma: a², b² e c², e sim usando a função pow. Como você tá elevando ao quadrado, faça assim: funca = (-14.4 / (a*a)) + (308 / 0.291)*exp(-a / 0.291); // funcb = (-14.4 / (b*b)) + (308 / 0.291)*exp(-b / 0.291); ... 14 func = (-14.4 / (c*c)) + (308 / 0.291)*exp(-c / 0.291); falou.