-
Posts
3.223 -
Cadastrado em
-
Última visita
Tópicos solucionados
-
O post de Ansi C em Variavel Receber Aquele valor foi marcado como solução
O que você deseja e trocar a variável de lugar...
Podemos atribuir nas variáveis, não importando o seu escopo (lugar). Existem alguns formas de provar isso, basicamente se usa ponteiros em C, já em C++ temos as referências que são menos que ponteiros, entretanto Referências e ponteiros são utilmente a mesma coisa.
Supomos uma função que chamaremos de sum, a função imaginária realiza a soma de duas parcelas e logo após atribui a resultado. Uma variável que foi declarada fora da função que chamamos de sum.
Em C++ essa rotina poderia ser assim:
EXEMPLO
#include <iostream> using namespace std; void sum (int parcela0, int parcela1, int &resultado) { //! Estou aqui resultado= parcela0 + parcela1; } int main() { int resultado; //< Estou aqui sum(10,10,resultado); cout << "10 + 10 = " << resultado << "\n"; } Esse código mostra a passagem por referência, veja se isso responde a sua pergunta. É como se a variável da função main() estivesse indo para o outro lado do código, pelo caminho do argumento referenciado.
-
O post de Ansi C em Programa não recebe dados pelo scanf foi marcado como solução
Está capturando o nova linha [ENTER]
para solucionar tente colocar este código antes do scanf( );
while(getchar() != '\n'){} @Paulo Moraes da Silva
-
O post de Ansi C em Sequencia de numeros descrescentes - portugol foi marcado como solução
Boa tarde;
Se eu bem entendi Y é maior que X onde Y tendendo a x será igual a x
Y > x <- Y, x = Y
algoritmo: NumerosDecrecentes
inicio escreva("digite o maior numero: ") leia(Y) escreva("digite o menor numero: ") leia(x) enquanto Y >= x faça escreva(""y"") Y = Y - 1 fimEnqunto fim
'-' tendi isso!
-
O post de Ansi C em Struct em função sem ou com ponteiro foi marcado como solução
Bom dia todos,
Utilizando ponteiros podemos reduzir o uso significativo de memória por parte do programa e permite também a manipulação direta dos dados contidos, apesar de que manipular estes dados diretamente reduz lhe a segurança, pensando neste último fator, podemos modificada a função que através do retorno alterar dados, para isso, será necessário mais memória.
bool preenche(Usuarios u[], int &c); Aqui há o cabeçario escrito; Os parâmetros desta função "são todos ponteiros", pois até mesmo uma referência pode se dizer que contém um ponteiro abstrato ou o próprio objeto.
Individualmente explico que no caso do parâmetro u[ ] é de fato um ponteiro, que aponta para um vetor de tamanho indefinido. E ainda do parâmetro &c que é uma referência onde disse que contem um objeto, se pode falar que é o próprio objeto, e dentro do universo da linguagem C' posso dizer ser um ponteiro sem a possibilidade de aritmética de ponteiros.
-
O post de Ansi C em Ajuda com código - C foi marcado como solução
Então @mi2011,
Não minha linha de pensamento: NULO/ NULL pode ser tanto 0 quando -1.
Fica a critério do programador ou da implementação da linguagem, você na qualidade de programador pode definir esta e ou outra condição.
Por exemplo em C:
Um ponteiro de valor 0 é um ponteiro nulo;
Um literal de caractere '\0' é nulo, pois é 0 na tabela ASCII;
O Macro EOF (End of File) que representa do fim de um stream é -1.
Uma Situação:
1> Se escrevermos uma função que solicita através de parâmetro uma idade, podemos implementar essa função de maneira a retorna -1 caso o valor passado pelo parâmetro seja um valor negativo, alertando que não existe idade negativa.
Assim entendesse que uma idade negativa é uma valor nulo.
2> Temos uma função que exige por parâmetro números diferentes de 0, então se passamos o valor 0 ele não
afetará a operação desta função pois é nulo.
Supomos que a função do caso 2 seja: pegar esse valor e multiplicar por 1000,
Você concorda que 1000 + 0 é 1000 (NULO)?
Você concorda que 1000 * 1 é 1000(NULO)?
Resolução:
O problema faz menção a valor/ número;
Para seu problema Zero é NULO já que zero não tem valor, aproposito zero é isso mesmo kkk.
EXEMPLO:
/** Converte Numerador e Denominador de uma fração em valor* decimal do tipo Float */float To_Float(int as_numerado, int as_denominador);int main(){ float f_tmp; setlocale(LC_ALL, ""); f_tmp = To_Float(1,3); printf("Show variable: %f float.\n\n", f_tmp); return 0;}float To_Float(int as_numerador, int as_denominador){//CONDIÇÃO PARA EXECUÇÃO DA FUNÇÃO: //DENOMINADOR MAIOR E DIFERENTE DE 0, E NUMERADOR MAIOR QUE 0. if(as_denominador <= 0 || as_numerador < 0) return 0; return ((float)as_numerador / as_denominador);}
Não sei se fui claro, qualquer coisa estamos aqui.
</byR3X>
-
O post de Ansi C em [C] - Programa não funciona como o esperado foi marcado como solução
Boa Dia @Trying,
Esse problema é causado pelo o caractere nova linha que resta no buffer de entrada apos digitar o número e teclar ENTER;
Com isso é capturado pelo função scanf.
Eu já abordei uma solução no seguinte poste: Meu vetor esta pulando a primera Posisão 0 para 1
Ficou com dúvida, questione?
-
O post de Ansi C em Função em C (Tipo e Parâmetros) foi marcado como solução
Boa Noite @mi2011,
--Também estou inciando e nos meus estudos autônomos, e a resposta para sua pergunta é: Sim claro que pode.
No exemplo, void é o tipo de retorno (que não retorna nada), porém poderia ser float que retornaria um número decimal.
Em seguida fiz um exemplo para ilustrar melhor:
#include <stdio.h>int main (void) { float decimal_number = 0; decimal_number = To_Decimal(1,3); printf("DECIMAL: %f\n\n", decimal_number); return 0; }/** \brief Converte dos valores inteiros em um valor decimal.* \return float- numerador e denominador, ambos para ponto flutuante.*/float To_Decimal(int num, int den) { float ret = 0; ret = num; ret = ret / den; return (ret); } okey?
-
O post de Ansi C em Permissão negada foi marcado como solução
Com relação a permissões: As vezes o Antivirus implica com código/app.
Agora se a mensagem vem de uma janela do grupo de trabalho do Code Block, então pode ser uma falha de instalação, bem subjetiva as causas.
-
O post de Ansi C em Programa que envolve matriz em função foi marcado como solução
Tire o * em toda ocorrência de
int *mat[TAM][11]
PS.: chato d+ de saber quando se post todo o código, prejudica aprendizado detenha se apenas a parte do problema.
-
O post de Ansi C em Problemas na hora de mostrar inteiros foi marcado como solução
na estrutura onde há:
int idade[3];
Troque por:
int idade;
PS. Acho que foi descuido seu em ter posto idade como vetor sendo que em nenhum momento apos tratou a variável como tal.
-
O post de Ansi C em Loop for não executando foi marcado como solução
Muito improvável, se o vetor tem 10 elementos e queremos percorrer todos elementos,
basta que a sentinela tem 10. Com essa afirmativa tenho:
int vetor[10], x = 10; ou
int i; for (i = 0, x = 10; i < x; i++) { printf("%d", vetor[i]); } ou ainda
int vetor[10], x = sizeof (vetor) / sizeof (*vetor);... int i; for (i = 0; i < x; i++) { printf("%d", vetor[i]); }
-
O post de Ansi C em Ajuda sobre bibliotecas C++ foi marcado como solução
Este sítio é o dos melhores de referência para quem estuda ou vai estudar C.
Até mesmo quem é profissionais recomenda /utiliza.
http://www.cplusplus.com/
-
O post de Ansi C em Como achar a diferença entre dois vetores em C? foi marcado como solução
Escreva uma busca/pesquisa em que cada elemento em x deve ser pesquisado em y. Você já estudou estruturas de loop for aninhadas, vai ter que ser com 2 declarações de loop ou modular com função de busca.
-
O post de Ansi C em Problema em Czão - Armazenamento de Variável foi marcado como solução
@Grégori Sória
O problema pode ser na pilhagem (código abaixo acessa bytes do código acima).
a solução seria reestruturar o código, você
já aplicou esta e funcionou. Supondo que essa etapa de loops não seja parte de nenhuma avaliação, simplesmente passe de uma estrutura (tmp) pra outra.
-
O post de Ansi C em Dúvida - Problema com Struct foi marcado como solução
Então existe declarações de nomeCliente como sendo objeto e membro de estrutura simultaneamente. Quando se remove o campo nomeCliente da estrutura, aonde houver a sentença: clientes[?].nomeCliente haverá também erro de copilação neste linhas.
-
O post de Ansi C em Me ajudem a voltar as configurações do code blocks foi marcado como solução
Vá com mouse até; View~ Toolbars~
E todas estão listadas. Para escolher
Qual queremos ativar clicando nela.
-
O post de Ansi C em Qual o problema na lógica do programa? foi marcado como solução
Oi Ana Luiza Cunha tudo bem? Veja abaixo
do { algarismos_AC++; numero_AC=numero_AC/10; } while (numero_AC!=0); o fragmento acima é do seu código, ele é o motivo de ter dito o fator 0 em
poster anterior. Observei que a condição while em que;
(numero_AC!=0) Leia-se: enquanto não for 0, sustenta o loop Statement
Tem que ser 0 em algum momento ou resulta em um loop infinito, entretanto o
problema não é mencionado, assumimos que em algum momento o valor fixou
em comprimento 0.
Outra questão, não foi você que atribui, foi o programa. Ainda usando o código:
Se inicialmente numero_AC = 101 o que se verá nos registro a cada step é:
Observe o que aconteceu dentro do WHILE loop.
Loop 1: numero_AC = 101 / 10;
Loop 2: numero_AC = 10 / 10;
Loop 3: numero_AC = 1 / 10;
Loop 4: numero_AC = 0 / 10;
END LOOP numero_AC = 0;
PS.: Eu não sou bom em dar explicações,
justamente não espero nada das outras.
{'!'}
-
O post de Ansi C em Dúvidas em relação a descobrir maiores valores em vetores com estrutura definida pelo usuario em c++ foi marcado como solução
Teu algorithm está correto costumo usar também a mesma lógica com pequena correção:
p = 0;
for(int i = 1; i < n; i++)
if (pontos.x > pontos[p].x)
p = i;
returno p; //índice do maior valor em x.
-
O post de Ansi C em Dúvida em executar um arquivo .exe no c++ foi marcado como solução
Se estou acerto, basta adicionar <stdio.h>
E função getchar(); no final do bloco obtendo uma pausa do tipo enter keypress.
-
O post de Ansi C em Dúvida em relação a recursividade em c++ foi marcado como solução
Hey!
Você errou ao colocar: a == 0, invés de b == 0 !!!!!!!!!!!!
kkkk
-
O post de Ansi C em Warning de ponteiro foi marcado como solução
Agora sim!
Faz assim, modifique para;
1.
struct Teste {
char v1[6];
char v2[6];
char v3[6];
}teste = { 0 };
Depois.
ptr = &buffer[0];
strncpy(teste.v1, ptr, 5);
ptr = &buffer[5];
strncpy(teste.v2, ptr, 5);
ptr = &buffer[9];
strncpy(teste.v3, ptr, 5);
Teste ai por favor que estou longe de casa
-
O post de Ansi C em Programa em C (Equação) foi marcado como solução
Bhaskara para equações do 2 grau: ax2 + bx + c = 0
Para saber mais sobre a Formula, consulte em um buscador web, ou em livros de Ensino Médio.
-
O post de Ansi C em Inserção ordenada em lista simplesmente encadeada foi marcado como solução
Será que se tu tira lhes o código tmp->prox = NULL do bloco de comentários em; contato *criar() talvez resolva.
-
O post de Ansi C em Como criar vetor de struct em C foi marcado como solução
Pensei um pouco hoje, e fiz da seguinte maneira, observem:
Code
-
O post de Ansi C em Variável mudando sozinha! em C foi marcado como solução
#include <stdio.h> // entrada e saída de dados //
#include <stdlib.h>
//* função principal do software
//* pós-dados: fim do programa
int main(void)
{
// Supomos que o local na memória é...
unsigned char vaium = 0; // 0x28FF1F
unsigned char hcuVal2 = 0; // 0x28FF1E
// Neste ponto você pode notar um fato
// como o nosso suposto copilador iniciou
// as variáveis na stack.
// Vamos atribuir valor as duas
vaium = 1;
hcuVal2 = 1;
// Imprimi-las...
printf("vaium=:%d""\n"
"Val2=: %d""\n",
vaium, hcuVal2);
// Agora vamos a experiencia...
// Entre com sprintf();
char hcNew = '1';
puts("Entrou com sprintf()");
sprintf(&hcuVal2, "%d", hcNew);
// Imprimi-las...
printf("vaium=:%d""\n"
"Val2=: %d""\n",
vaium, hcuVal2);
puts("Wow!!! vaium =: 0 ????");
// Se a experiencia foi bem sucedida como aqui
// você percebeu que ambas as variáveis tiveram
// o valor modificado... E Então você já
// entendeu o por que!
// Suponho que tenha relação com o que aconteceu
// com à variável vaium;
// Tudo neste problema veem do interno da função
// ??? " %d", ???; ela espera um int (16 bits);
// mais hcuVal2, tem apenas 8 bits, então a função
// invade os próximos bits na memória da stack.
//
// Isso me ocorreu enquanto dormia
// achei tão interessante que postei de celular mesmo.
// Tenha um boa noite.
return ( 0); //<
}
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