
rickayron
Membros-
Total de itens
679 -
Registro em
-
Última visita
Tudo que rickayron postou
-
Olá ana, o que você pediu ainda não ficou muito claro pra min, vamos lá. Nesse arquivo vai ter o que? (espaço, ponto e virgula) ou terá somente carácter alfanuméricos). se o que estiver no arquivo for caracter alfanuméricos basta criar um vetor e ordená-lo.
-
Bom dia ana, nesse caso eu preciso ver o código da função imprimir, pois ele não está no seu post. Mas imagino que seja algo do tipo: void imprimir(NODE *pilha){ NODE *p=pilha; while(p->prox !=NULL){ printf("%c ", (*p).num); p=(*p).prox; if(p==NULL){ break; } } } Observe a linha onde está o printf; printf("%c ", (*p).num); Nesse caso o %c indica que será impresso um caracter, mas no seu caso penso eu que deve ter um %d que seria para imprimir um inteiro. Caso essa intuição esteja correta, troque o %d por %c. E se precisar de mais algum ajuste post todo o código modificado para sabermos o que está acontecendo. até mais.
-
Bom dia ana, basta trocar o int pelo char, e assim consiguirar o efeito desejado. troque isso void inserir(NODE *pilha, int num); por isso: void inserir(NODE *pilha, char num); troque isso void inserir(NODE *pilha, int num) por isso void inserir(NODE *pilha, char num) e para inserir ficaria algo tipo inserir(p, 'a'); inserir(p, 'n'); inserir(p, 'a'); até mais
-
OLá, post o código para que possamos ajudá-lo. Se quer algum exemplo procure no vivalinux, lá possui alguns exemplos de lista.
-
Olá, na lógica, geralmente quando soma dois números, retorna um numero e não char. Observe o código: char soma (int x, int y)//aqui não tem ponto em virgula Nesse trecho você diz que o retorno dessa função é char, no entanto tenta retornar um número. O correto para que essa função funciona seria: #include <stdio.h>//aqui não tem ponto em virgula #include <stdlib.h>//aqui não tem ponto em virgula using namespace std; int soma (int x, int y);//escopo da função soma void main(){ int a, b; a = 5; b = 7; printf("\n %d", soma (a, b)) system("pause"); } // fecha main int soma (int x, int y)//aqui não tem ponto em virgula { return (x + y); }
-
eu também dou conta.
-
Olá, o problema que você está enfrentando se dá pela seguinte premissa: Os compiladores trabalham com escopo, e cada variável, função tem seu escopo. #define botao 5 Nessa declaração você DETERMINOU que a variável botao vai assumir o valor 5 ao iniciar a execução e esse valor não vai mudar. Essa variável não pode mais sofrer atribuições. scanf("%d", &botao); Nesse código você tenta atribuir um novo valor à variável botão. Isso viola as leis do compilador, e consequentemente gera erro. A solução é você usar outra variável, ou não definir uma constante. E talvez seja uma boa ideia criar um struct controle remoto e outro para tv. struct tv{ char marca[30]; int canalAtual; bool status; //0 desligada, 1 ligada int volume; };
-
Ajuda em trabalho em c (entrada de faculdade)
pergunta respondeu ao jorgenelsorodrigues de rickayron em C, C++
Olá, vamos analisar o código passo a passo. #include <stdio.h> #include <stdlib.h> int valores [9]; int quantidadeporvalor [9]; int valores [] = {500, 200, 100, 50, 25, 10,5, 2,1}; int valortotal, resto; float valor; int i = 0; Inclusão das bibliotecas fundamentais ok. Declaração das variáveis, sem erro. ---------------------------------------------------------------------------------- int main(void) { printf("Entre com um valor"); scanf ("%f", &valor); valortotal = valor*100; while (valortotal>0){ for (i=0; i<9; i++) { //a variável valores foi declarada como vetor, e seria mais útil se usada tipo "valores[i]". if ((valortotal-valores)>=0){ valortotal = valortotal-valores ; resto = valortotal; valortotal = resto; quantidadeporvalor ++; } //fim if }//fim for } //fim while //não entendi a necessidade desse for, visto que o quantidadeporvalor é um vetor, mas está sendo usado errado. //quantidadeporvalor[i] //a formatação também poderia ser [%d] for (i=0;i<9;++i){ printf ("O valor [%] = %d", i, quantidadeporvalor ); } //fim for //e a chave para fechar a função main faltou. Mano eu comecei a comentar o código mas não sei se ficou claro. Observei que os erros se incidem mais sobre o uso de vetores, procure videos na internet, eles ajudam bastante. exemplo usando for e vetor. #include <stdio.h> #include <stdlib.h> using namespace std; int main(){ int numeros[20]; //temos um vetor que pode armazenar até vinte números inteiros. for(int i=0; i<20; i++){ numeros[i]=(i+1); //armazena o valor de i mais um na posição i do vetor. exemplo, na posição 0 vai ter 1. } //imprimindo os números. for(int i=0; i<20; i++){ printf("O valor %d = %d \n", i, numeros[i]); } } -
Olá, o problema está no seguinte código: char string[100]; char ch1; char ch2; Você declarou um vetor de char, que é o mesmo de uma string no fim das contas, mas o ch1 não é uma palavra mas sim um caracter, ou seja você está tentando pegar uma palavra( um vetor de char) com apenas um char. você deve corrigir isso, algo tipo isso: char string[100]; char ch1[20]; char ch2[20]; você deve ajustar a entrada de dados na linha "scanf..." e ajustar o for, pois você vai ter que comparar caracter a caracter, portanto vai precisar dividir a frase em palavras e comparar as palavras. até mais.
-
testei o seguinte código <?php $med = function($n1,$n2,$n3,$n4){ $result = ($n1+$n2+$n3+$n4)/4; return $result; }; $aluno[0]["nome"] = "Brian Johnson"; $aluno[0]["media"] = $med(3,6,6,8); $aluno[1]["nome"] = "Lenny Kravitz"; $aluno[1]["media"] = $med(1,4,2,5); $aluno[2]["nome"] = "Bruce Dickinson"; $aluno[2]["media"] = $med(4,5,4,4); $aluno[3]["nome"] = "James Hetfield"; $aluno[3]["media"] = $med(7,4,7,7); $aluno[4]["nome"] = "Angus Young"; $aluno[4]["media"] = $med(7,6,6,8); for($i = 0, $n = count($aluno); $i < $n; $i++){ echo "<b>Nome do aluno: </b>" . $aluno[$i]["nome"] . "</b><br>"; echo "<b>Media do aluno: </b>" . $aluno[$i]["media"] . "</b><br><br>"; } funcionou perfeitamente.
-
Olá, aparentemente você esqueceu um ponto e vírgula depois da função anônima. Observe o código abaixo. <?php $med = function($n1,$n2,$n3,$n4){ $result = ($n1+$n2+$n3+$n4)/4; return $result; }; $aluno[0]["nome"] = "Brian Johnson"; $aluno[0]["media"] = $med(3,6,6,8); $aluno[1]["nome"] = "Lenny Kravitz"; $aluno[1]["media"] = $med(1,4,2,5); $aluno[2]["nome"] = "Bruce Dickinson"; $aluno[2]["media"] = $med(4,5,4,4); $aluno[3]["nome"] = "James Hetfield"; $aluno[3]["media"] = $med(7,4,7,7); $aluno[4]["nome"] = "Angus Young"; $aluno[4]["media"] = $med(7,6,6,8); for($i = 0, $n = count($aluno); $i < $n; $i++){ echo "<b>Nome do aluno: </b>" . $aluno[$i]["nome"] . "</b><br>"; echo "<b>Media do aluno: </b>" . $aluno[$i]["media"] . "</b><br><br>"; }
-
A maneira mais fácil que conheço é justamente a matriz, post o código. até mais.
-
Olá, observe o seguinte código: int numeroPilotos=3, pilotoGanhador; float tempo[numeroPilotos]={4.7, 2.9, 10.7}; float menorTempo=(INT_MAX); for(int i=0; i<numeroPilotos; i++){ if(tempo[i]<menorTempo){ menorTempo=tempo[i]; pilotoGanhador=i; } } printf("o pilodo ganhador foi o %d com o tempo %f\n", pilotoGanhador+1, menorTempo); Se tudo o que quer é pegar o menor tempo e também o índice do vetor piloto, você pode adaptar o código acima para o seu código com poucas mudanças, até mais.
-
Sistema de login com níveis de permissão - MySQL + PHP
pergunta respondeu ao PerguntasScript de rickayron em MySQL
Olá, observe o seguinte trecho do código: if($_SESSION['idUsuario']['nivel'] = $nivelNecessario){ troque por isso: if($_SESSION['idUsuario']['nivel'] == $nivelNecessario){ Se o problema persistir, avise. até mais. -
Olá amigo, poste o seu código e iremos te ajudar com suas duvidas, logo de cara acho necessário você ler um pouco sobre vetores para para resolver a primeira questão, e swith() para resolver a segunda questão. http://www.apostilando.com/sessao.php?cod=11 até mais.
-
Passar o userID junto com o sessionID pro mysql
pergunta respondeu ao rogermonteiro de rickayron em PHP
Olá tente isso: <?php include 'dbconnect.php'; $sessionid = isset($_GET['sessionid']) ? $_GET['sessionid'] : '0'; //verifico o tipo de banco, definido no dbconnect.php switch ($dbType) { case DB_MYSQL: $stmt = $pdo->prepare('CALL prcGetFile(?)'); // aqui to passando o sessionID, preciso passar o userID tambem :( break; } //como faço para dar este execute() com os 2 parametros no caso userid e sessionid? // $stmt->execute(array(':sessionID' => $sessionid)); $stmt->bindParam(1, $sessionid, PDO::PARAM_INT); $stmt->execute(); $json = '{ "files": ['; foreach ($stmt as $row) { $json .= $row['json']; $json .= ','; } $json = rtrim($json, ","); $json .= '] }'; header('Content-Type: application/json'); echo $json; até mais. -
Poste o código, pois sua imagem está cortada não da pra ver todo o código. Dica utilize a tage Code <> assim fica formatado e facil de entender. até mais.
-
Olá, eu não entendi muito bem o que você deseja, pois as regras de pilha é apenas que o último que entra é o primeiro que sai. exemplo de pilha #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; struct pilha{ int numero; pilha *anterior; }; void inserir(int valor); int remover(); void imprimir(); pilha p; int numeroItens=0; int main(){ int valor; while(true){ cout<<"informe um numero: "; scanf("%d",&valor); inserir(valor); cout<<endl; imprimir(); } } void inserir(int valor){ if(numeroItens==0){ //inicializa a pilha. p.numero=valor; p.anterior=NULL; }else{ pilha *nova=(pilha*) malloc(sizeof(pilha)); *nova=p; p.numero=valor; p.anterior=nova; } numeroItens++; } void imprimir(){ cout<<"-------------itens da pilha----------------"<<endl; pilha *pont=&p; for(int i=0; i<numeroItens; i++){ cout<<(*pont).numero<<" "; pont=(*pont).anterior; } cout<<endl<<"Total de itens: "<<numeroItens<<endl; } Agora se você deseja inserir os elementos em ordem, pode criar um insert sort, ou algum outro algoritmo de ordenação, quick_sort por exemplo.
-
Cadastro, página em branco, caracter japones e erro de tabela
pergunta respondeu ao Phil Santos de rickayron em PHP
Olá, algumas considerações: $selsql = "SELECT * FROM clientes where (email = '$email')"; Substitua a linha acima por $selsql = "SELECT * FROM clientes where email = '".$email."'"; Habilite as mensagens de erro para saber o que está ocorrendo. Siga as orientações desse link http://rberaldo.com.br/as-mensagens-de-erros-mais-comuns-do-php/ Observe o código abaixo: $conexao = mysql_connect($host,$bd, $senhabd); mysql_connect() é uma função que está obsoleta, portanto pode ocorrer erro dependendo da versão do php que está instalada no servidor. É recomendado que use funções atuais, tipo o PDO(); Mas caso opte por usar essa mesma função substitua o código acima por: $conexao = mysql_connect($host,$bd, $senhabd) or die("Erro na conexao: ".mysql_error()); substitua isso: $banco = mysql_select_db($bd,$conexao); por isso: $banco = mysql_select_db($bd,$conexao) or die("Erro ao selecionar banco de dados: ".mysql_error()); substitua isso: $teste = mysql_query($selsql,$conexao); por isso: $teste = mysql_query($selsql,$conexao) or die("Erro ao tentar selecionar: ".mysql_error()); substitua isso: $query = "INSERT INTO `clientes` ( `nome` , `email` , `sexo` , `ddd` , `telefone` , `endereço` , `cidade` , `estado` , `bairro` , `país` , `login` , `senha` , `news` , `id` ) VALUES ('$nome', '$email', '$sexo', '$ddd', '$tel', '$endereco', '$cidade', '$estado', '$bairro', '$pais', '$login', '$senha', '$news', '')"; mysql_query($query,$conexao); echo "OK"; por isso: $query = "INSERT INTO clientes(nome, email, sexo, ddd, telefone, endereço, cidade, estado, bairro, pais, login, senha, news) VALUES ('".$nome."', '".$email."', '".$sexo."', '".$ddd."', '".$tel."', '".$endereco."', '".$cidade."', '".$estado."', '".$bairro."', '".$pais."', '".$login."', '".$senha."', '".$news."')"; $inserir=mysql_query($query,$conexao) or die("Erro ao tentar inserir registro: ".mysql_error()); if($inserir){ echo "OK"; }else{ echo "não foi possível inserir o registro."; } até mais, e boa sorte; -
Sim, a biblioteca PDO() do php fornece meios de conecção para vários sistemas de gerenciamento de banco de dados, entre eles, o postgreSQL. aqui tem exemplo para lhe dar um ponto de partida http://rberaldo.com.br/pdo-mysql/ é um link de um dos contribuintes do forum, muito bom. Mas aviso que irá precisar de mais conteúdo para fazer o que deseja.
-
Na verdade se você digitar um número float, exemplo 3.1 isso seria simples, pois bastaria você trocar o tipo de entrada de int para float, observe o exemplo abaixo. #include <stdio.h> #include <stdlib.h> int main(){ // Entrada do usuário de entrada - espero que um número // Temp utilizado para recolher lixo caracteres // status que o usuário insira um número? int entrada, temp, status; float x, xTemp; printf ( "Por favor insira um número:"); //imprimi a mensagem para o usuario digitar um numero. status = scanf ( "%f", &x); if(status==1){ entrada=(int)x; xTemp=(float)entrada; if( (x-xTemp)!=0 ){ status=0; } } while (status!= 1) { //isso vai repetir enquanto status for diferente de um. while((temp=getchar()) != EOF && temp != '\n'); //evita que o laco caia no infinito quando o usuario digitar algo errado. printf ( "Entrada inválida ... por favor insira um número:"); //status = scanf ( "%d", &entrada); //pega o que o usuario digitou e atualiza a variavel status. status = scanf ( "%f", &x); if(status==1){ entrada=(int)x; xTemp=(float)entrada; if( (x-xTemp)!=0 ){ status=0; } } } //fecha o while printf ( "O seu número é %d \ n", entrada); return 0; } //fecha a função main Mas se você deseja pegar tudo que o usuário digitar e verificar se isso é um int, ai acho que seria mais simples usar uma biblioteca tipo a istringstream do c++, ela é bem interessante. até mais.
-
Olá, fique tranquilo pois validação de dados é uma tarefa chata e difícil até para os que os mais experientes, portanto, não desanime. abaixo segue um código comentado, e fique a vontade para esclarecer qualquer dúvida, pois é muito importante você entender cada linha de programação, pois não faz sentido resolver um exercício sem entendê-lo. #include <stdio.h> //biblioteca para printf int main(){ // Entrada do usuário de entrada - espero que um número // Temp utilizado para recolher lixo caracteres // status que o usuário insira um número? int entrada, temp, status; printf ( "Por favor insira um número:"); //imprimi a mensagem para o usuario digitar um numero. status = scanf ( "%d", &entrada); while (status!= 1) { //isso vai repetir enquanto status for diferente de um. while((temp=getchar()) != EOF && temp != '\n'); //evita que o laco caia no infinito quando o usuario digitar algo errado. printf ( "Entrada inválida ... por favor insira um número:"); status = scanf ( "%d", &entrada); //pega o que o usuario digitou e atualiza a variavel status. } //fecha o while printf ( "O seu número é %d \ n", entrada); return 0; } //fecha a função main
-
Talvez eu tenha de alguma forma dado a entender que a solução está completa, mas não está. Fiz somente o retorna de uma string, e o uso da 'echo $letra' fora do for se justifica pelo fato de não querer imprimir dados repetidos. Exemplo com o echo dentro do for, vai gerar algo tipo: S, MarcioS,Marcio Rogerio Com o echo fora dor for, vai gerar algo tipo: S, Marcio Rogerio que é justamente o esperado. O for nesse caso não é para percorrer o array $pessoas, mas sim o array $conjunto que foi criado pelo uso do explode, ou seja, esse conjunto é simplesmente um nome dividido pela ocorrência de espaços entre as palavras.
-
O php vai conseguir imprimir na maquina em que ele reside ou através dela. Se você está tentando imprimir uma página pelo php mas acessando de um cliente e a impressora estando no cliente, isso não vai rolar pois o php só enxerga o hardware do servidor. Verifique se o servidor consegue enxergar o servidor de impressão. Para imprimir em impressoras instaladas no cliente talvez seja melhor verificar a viabilidade de usar o javaScript. Me desculpe se entendi errado, até mais.
-
Olá, segue abaixo os links que vão lhe fornecer subsídio para resolver isso. Primeiro tudo que você precisa é identificar o ultimo nome e retornar a primeira letra desse nome. http://php.net/manual/pt_BR/function.substr.php Segundo uso de uma estrutura de repetição, acima já foi citado o foreach. Abaixo segue um exemplo, para esclarecer o que usuários já postaram aqui. <?php $pessoas = array( 'Marcio Rogerio Santos', 'Maria das Couves', 'José dos Santos Júnior', 'Antônia Maria Siqueira', 'João Cavalcante', ); //pegando a primeira linha do conjunto. $stringOriginal=$pessoas[0]; //dividindo a string em pegados $conjunto=explode(" ", $stringOriginal); //pegando a primeira letra do ultimo nome. $letra=$conjunto[count($conjunto)-1]{0}; //pegando o restante dos nomes. $letra.=", "; for($i=0; $i<(count($conjunto)-1); $i++){ $letra.=$conjunto[$i]; } echo $letra; Resumindo procure informações sobre o explode(), string e for(), claro que com o preg_match() é possivel também resolver isso, até mais.