Esta aula me fez entender melhor como funciona o scanf, fui perceber agora que quando você insere insere algum caracter entre os %d do scanf você espera que o usuário também digite este carácter estre seus argumentos.
Na verdade não, se você der um scanf (%i %i %i), você pode dar apenas um printf inserindo os dois pontos no meio dos numeros que vai funcionar da mesma forma, não necessitando do usuário colocar os dois pontos.
Pra quem chegar agora com a mesma dúvida que tive: 'Como fazer pro número aparecer formatado 09 ao invés de somente 9?' Sussa, deixe formatado com 2 casas decimais antes de cada %i no printf, ficando assim: "%.02i:%.02i:%.02i "
Muito obrigado cara.. recomendo dar uma olhada no livro Linguagem C A bíblia (você acha ele pra download no google). O livro é um pouco antigo mas dá pra tirar muito coisa boa dele. Se você se garantir no inglês também recomendo Programming in C - by Stephen G Koghan. Abraços
Pra fazer isso voce adiciona o número de casas de zeros que quer que apareça antes do número entre o "%" e o "i" na função printf. No seu caso seria assim: "%02i"
ola, uma dúvida, quando você esta digitando as horas no scanf você coloca por exemplo 10:23:30, como faz para não dar enter entre os digitos?? Pra mim fica assim: 10 23 30 tem algumas tecla:
vc declara uma variavel "int tamanho" e usa um scanf pra captura-lo...essa variavel seria usada no lugar do indice do vetor...onde tá [5] seria [tamanho]
As variáveis da estrutura são estáticas? Porque nesse vídeo ele definiu o valor para as variáveis da estrutura na primeira função, e na segunda função o valor permaneceu quando chamou o printf.
Neste caso até mesmo um vetor de uma tipo struct quando passado como parâmetro de uma função tem seus valores originais alterados! Me pergunto se em C++ um vetor de objetos tambem se comporta assim.
tem como fazer essa questão sem usar struct GLOBAL? é mais ludico não utilizar global e passar a struct por ponteiro... se puder me ajudar com isso.. vlws!
Tive um pequeno contratempo por causa que não havia entendido direito o scanf! pois os ("%i:%i:%i") exige que vc digite certinho pra ñ acontercer erros, mas pelo menos não esqueço mais isso.
Eu também, tava fritando o cérebro aqui tentando entender onde eu errei, antes de ver esse vídeo eu fui tentar fazer sozinho, refiz umas 3 vezes, depois assisti o vídeo e refiz novamente.. no fim era só a maneira de como se escreve
Muito boa aula! Pena que minhas provas de algoritmos são feitas no papel com: " faça um programa que inicialize uma matriz de tamanho 9999x9999, faça a soma da diagonal principal e receba o maior valor da matriz pintado de 3 cores diferentes e inversamente proporcionais; kkk
OI Emanuel pode ser o compilador, o da aula deu certo, mas eu fiz diferente defini primeiro a função void, e fiz mais algumas mudanças entaõ deu certo.
No scanf desse video na tela de execução ao usuário digitar um número em seguida aparece os : (dois pontos) no meu isso não acontece, ele pula uma linha alguém pode me ajudar ?
Unica coisa que a galera pode ter ficado um pouco perdido é questão da manipulação de memória ali no preenchimento, mas fiquem tranquilos, que eu acho que ele aborda mais para frente
+Emanuel HUber Ele não cria funções dentro da main, o que ele faz é declarar as funções. As funções ele faz logo após a main. Agora se você fizer a função antes da main não há necessidade de declarar elas na main. Entende? Esse é o jeito que faço.
+Anderson Ferreira Na verdade não é exatamente declaração é assinatura, é o que eu sempre ouvi do meu professor. Na pratica a nomenclatura não muda em nada, é apenas questão da bibliografia que você usa para estudar...
Muito show suas aulas, estou recomendando aos meus amigos. fiz esse exe e rodou com a biblio stdio.h mas quando uso iostream aparece uns numeros estranhos. a função RecHr com a biblio stdio.h está ok void RecHr(struct horario lista[5]){ int i; for(i=0; i
O segredo é a prática, por mais que pareça difícil com a prática se aprende e fica fácil, e é muito divertido quando vc põe metas do tipo, vou fazer um programa que faz isso e isso, mão em massa. Pelo menos todo dia um pouquinho. Desista não!
Eu uso gcc no Linux Mint e não apareceu nada no gcc no Terminal, tem com explicar porque deu esse resultado diferente do Dev C++? O G++ também deu esse resultado não apareceu nada.
Já resolvi, estava faltando 2 coisas que era o que estava impedindo que aparecer-se na tela. Por isso deu brando, agora está como você mostrou no vídeo, mais em GCC e G++.
Fiz um parecido... Se alguém precisar.. #include struct hora{ int hora; int minuto; int segundo; }; int main(void) { void recebe(struct hora x[5]); void imprime(struct hora x[5]); struct hora receptor[5]; recebe(receptor); imprime(receptor); return 0; } void recebe(struct hora x[5]){ int i; for( i = 0; i
Adorei a aula, mas nao sei porque nao deu certo no meu: #include #include struct horario{ int hora; int minuto; int segundos; }; int main(void) { void receberHorarios(struct horario lista[5]); void printfHorarios(struct horario lista[5]); struct horario listahorarios[5]; receberHorarios(listahorarios[5]); printf(" "); printfHorarios(listahorarios[5]); system("pause"); return 0; } void receberHorarios(struct horario lista[5]){ int i; for (i = 0; i < 5; i++) { printf("Digite o %i horario (hh:mm:ss)", i + 1); scanf("%i:%i:%i", &lista[5].hora, &lista[5].minuto, &lista[5].segundos); } } void printfHorarios(struct horario lista[5]){ int i; for (i = 0; i < 5; i++) { printf(" A %i° hora digitada foi: %i:%i:%i", i+1, lista[5].hora, lista[5].minuto, lista[5].segundos); } }
O erro está no que está sendo passado como parâmetro pela função. Não pode colocar o tamanho do vetor ali: receberHorarios(listahorarios[5]); printfHorarios(listahorarios[5]); Apenas deixe como: receberHorarios(listahorarios); printfHorarios(listahorarios);
o meu ficou assim: #include int i; struct horario{ int horas; int minutos; int segundos; }; struct horario mostraTempo(struct horario x[5]){ printf("Os horarios sao: "); for(i=0;i
Esta aula me fez entender melhor como funciona o scanf, fui perceber agora que quando você insere insere algum caracter entre os %d do scanf você espera que o usuário também digite este carácter estre seus argumentos.
Na verdade não, se você der um scanf (%i %i %i), você pode dar apenas um printf inserindo os dois pontos no meio dos numeros que vai funcionar da mesma forma, não necessitando do usuário colocar os dois pontos.
Pra quem chegar agora com a mesma dúvida que tive: 'Como fazer pro número aparecer formatado 09 ao invés de somente 9?' Sussa, deixe formatado com 2 casas decimais antes de cada %i no printf, ficando assim:
"%.02i:%.02i:%.02i
"
assisti o video 20 vezes pra esse conteudo entrar na minha cabeca, obgg melhor video que achei
Isso que é uma aula de estrutura. Muito obrigado!
simplesmente o melhor professor de c
Muito obrigado cara.. recomendo dar uma olhada no livro Linguagem C A bíblia (você acha ele pra download no google). O livro é um pouco antigo mas dá pra tirar muito coisa boa dele.
Se você se garantir no inglês também recomendo Programming in C - by Stephen G Koghan.
Abraços
Muito Obrigado, sua didática é excelente!
Muito bom os vídeos aprendendo bastante!
Otima aula como sempre :3
Excelente aula! Poderia dizer como faço aparecer o Zero 0 ao digitar no Scanf e aparecer no meu Printf, tipo qdo digito horário: 01:24:07 ?
Pra fazer isso voce adiciona o número de casas de zeros que quer que apareça antes do número entre o "%" e o "i" na função printf. No seu caso seria assim: "%02i"
ola,
uma dúvida, quando você esta digitando as horas no scanf você coloca por exemplo 10:23:30, como faz para não dar enter entre os digitos?? Pra mim fica assim:
10
23
30
tem algumas tecla:
vc declara uma variavel "int tamanho" e usa um scanf pra captura-lo...essa variavel seria usada no lugar do indice do vetor...onde tá [5] seria [tamanho]
Passou rápido, aula 45 já queria um certificado
As variáveis da estrutura são estáticas?
Porque nesse vídeo ele definiu o valor para as variáveis da estrutura na primeira função, e na segunda função o valor permaneceu quando chamou o printf.
Bom dia amigo você poderia me dar uma dica num exercício você sabe como inverter só as consoantes e manter vogais as em uma string em c
Pra quem foi procurar no FB e não achou, tá aí:
facebook.com/notes/de-aluno-para-aluno/lista-de-exerc%C3%ADcios-programar-em-c/381566155254899
Neste caso até mesmo um vetor de uma tipo struct quando passado como parâmetro de uma função tem seus valores originais alterados! Me pergunto se em C++ um vetor de objetos tambem se comporta assim.
Me salvou ccara! :D :D :D
tem como fazer essa questão sem usar struct GLOBAL? é mais ludico não utilizar global e passar a struct por ponteiro... se puder me ajudar com isso.. vlws!
Tive um pequeno contratempo por causa que não havia entendido direito o scanf! pois os ("%i:%i:%i") exige que vc digite certinho pra ñ acontercer erros, mas pelo menos não esqueço mais isso.
Eu também, tava fritando o cérebro aqui tentando entender onde eu errei, antes de ver esse vídeo eu fui tentar fazer sozinho, refiz umas 3 vezes, depois assisti o vídeo e refiz novamente.. no fim era só a maneira de como se escreve
Muito boa aula! Pena que minhas provas de algoritmos são feitas no papel com: " faça um programa que inicialize uma matriz de tamanho 9999x9999, faça a soma da diagonal principal e receba o maior valor da matriz pintado de 3 cores diferentes e inversamente proporcionais; kkk
muito verdade kkkkkkk
mano, tenho um odio tremendo por prova de programação no PAPEL!! pqp
slk man, programar no papel eh foda nmrl
O facebook ainda esta ativo pois eu não encontro o grupo :¨(
Show
O meu dá erro quando coloco : dentro do scanf, para ficar %i:%i:%i.... O programa roda mas dá uns números estranhos. Qual o problema?
emannuel128 provavelmente deve ser colocado assim;
scanf("%i:%i:%i
", &bla, &lab, %abl); // tem que agregar o valor com a "&" ;)
OI Emanuel pode ser o compilador, o da aula deu certo, mas eu fiz diferente defini primeiro a função void, e fiz mais algumas mudanças entaõ deu certo.
no linux e diferente a função de retornar e sem struct so vetor ,testei ate acerta kkkkkk,brigado
No scanf desse video na tela de execução ao usuário digitar um número em seguida aparece os : (dois pontos) no meu isso não acontece, ele pula uma linha alguém pode me ajudar ?
Unica coisa que a galera pode ter ficado um pouco perdido é questão da manipulação de memória ali no preenchimento, mas fiquem tranquilos, que eu acho que ele aborda mais para frente
Porque você cria as funções dentro da main?
+Emanuel HUber Ele não cria funções dentro da main, o que ele faz é declarar as funções. As funções ele faz logo após a main. Agora se você fizer a função antes da main não há necessidade de declarar elas na main. Entende? Esse é o jeito que faço.
+Anderson Ferreira Na verdade não é exatamente declaração é assinatura, é o que eu sempre ouvi do meu professor. Na pratica a nomenclatura não muda em nada, é apenas questão da bibliografia que você usa para estudar...
Matheus Jones Silva verdade. I meu falava do jeito que citei kk
Muito show suas aulas, estou recomendando aos meus amigos. fiz esse exe e rodou com a biblio stdio.h mas quando uso iostream aparece uns numeros estranhos.
a função RecHr com a biblio stdio.h está ok
void RecHr(struct horario lista[5]){
int i;
for(i=0; i
Vou continuar com python c é muito dificil sou um fracassado burro mesmo não consigo entender essa desgraca
O segredo é a prática, por mais que pareça difícil com a prática se aprende e fica fácil, e é muito divertido quando vc põe metas do tipo, vou fazer um programa que faz isso e isso, mão em massa. Pelo menos todo dia um pouquinho.
Desista não!
Eu uso gcc no Linux Mint e não apareceu nada no gcc no Terminal, tem com explicar porque deu esse resultado diferente do Dev C++? O G++ também deu esse resultado não apareceu nada.
Já resolvi, estava faltando 2 coisas que era o que estava impedindo que aparecer-se na tela. Por isso deu brando, agora está como você mostrou no vídeo, mais em GCC e G++.
Fiz um parecido... Se alguém precisar..
#include
struct hora{
int hora;
int minuto;
int segundo;
};
int main(void)
{
void recebe(struct hora x[5]);
void imprime(struct hora x[5]);
struct hora receptor[5];
recebe(receptor);
imprime(receptor);
return 0;
}
void recebe(struct hora x[5]){
int i;
for( i = 0; i
Parabéns! Gostei do raciocínio!
Ta mal endentado, gostei da solução, mas forcei um pouco o celebro conseguir entender
@@oorial na área de comentários do TH-cam fica difícil identar
Nossa senhora... Que questão é essa?! O.O'
Como seria se o tamanho do vetor fosse informado pelo usuario(ao inves de ser dado como 5), ou seja nao se sabe se o tamanho é 5, 10 ,20, 30 etc...
só usar um sizeof para pegar o tamanho do vetor e informar no loop, poxa 7 anos atras ainda ta vivo cara ? kkkkk
Adorei a aula, mas nao sei porque nao deu certo no meu:
#include
#include
struct horario{
int hora;
int minuto;
int segundos;
};
int main(void)
{
void receberHorarios(struct horario lista[5]);
void printfHorarios(struct horario lista[5]);
struct horario listahorarios[5];
receberHorarios(listahorarios[5]);
printf("
");
printfHorarios(listahorarios[5]);
system("pause");
return 0;
}
void receberHorarios(struct horario lista[5]){
int i;
for (i = 0; i < 5; i++)
{
printf("Digite o %i horario (hh:mm:ss)", i + 1);
scanf("%i:%i:%i", &lista[5].hora, &lista[5].minuto, &lista[5].segundos);
}
}
void printfHorarios(struct horario lista[5]){
int i;
for (i = 0; i < 5; i++)
{
printf(" A %i° hora digitada foi: %i:%i:%i", i+1, lista[5].hora, lista[5].minuto, lista[5].segundos);
}
}
O erro está no que está sendo passado como parâmetro pela função. Não pode colocar o tamanho do vetor ali:
receberHorarios(listahorarios[5]);
printfHorarios(listahorarios[5]);
Apenas deixe como:
receberHorarios(listahorarios);
printfHorarios(listahorarios);
o meu ficou assim:
#include
int i;
struct horario{
int horas;
int minutos;
int segundos;
};
struct horario mostraTempo(struct horario x[5]){
printf("Os horarios sao:
");
for(i=0;i
2019?
#include
#define N 5
struct horario{
int hora;
int minuto;
int segundo;
};
void receberHorarios(struct horario lista[N]){
int indice;
for(indice = 0; indice < 5; indice++){
printf("[%dº] horario (hh mm ss) : ", indice + 1);
scanf("%d %d %d",&lista[indice].hora,&lista[indice].minuto, &lista[indice].segundo);
}
}
void printHorarios(struct horario lista[N]){
int indice;
for(indice = 0; indice < 5; indice++){
printf("%d:%d:%d
",lista[indice].hora, lista[indice].minuto, lista[indice].segundo);
}
}
int main(){
struct horario listaHorarios[N];
receberHorarios(listaHorarios);
printHorarios(listaHorarios);
return 0;
}