Contato

É importante para nós receber o feedback dos leitores!

Deixem suas dúvidas, elogios, críticas, o que está faltando, erratas, sugestão de aulas, etc:
http://progressiva.forumeiros.com/

Para demais assuntos: c.progressivo [a] gmail . com

29 comentários:

luiz carlos correia disse...

obligado pelo trabalho...
foi um dos melhores que já vi...
espero um dia poder fazer um..
trabalho desse...beijos por enquanto...

Thiago Furlan disse...

Parabéns, baita trabalho!

Luan Cardoso disse...

Na pagina "Soluções das questões sobre o laço FOR", no exercicio "6.", o código não será efetivo caso o terceiro número a ser digitado seja maior que o segundo e menor que o primeiro. Nesse caso o segundo maior não será efetivamente o segundo maior.
Eu construi o código desta maneira e funcionou:

#include "stdio.h"

int main()
{
int maior,
segundo_maior,
num,
count;

for(count=1, maior=0, segundo_maior=0 ; count<=9 ; count++)
{
printf("Digite o numero %d: ", count);
scanf("%d", &num);

if(num > maior)
{
maior = num;
}
else
if(num>segundo_maior&&num<maior)
{
segundo_maior=num;
}
}

printf("Maior: %d\n", maior);
printf("Segundo maior: %d\n", segundo_maior);
}


Att.,

Apostila C Progressivo disse...

Opa, valeu Luan. Realmente tava incompleto o código, vou alterar lá e corrigir outras coisas também.

Lembrando que, no seu código, se 'num > maior', você altera só o valor de 'maior', mas tem que alterar o de 'segundo_maior' também. E você está contando só de 1 até 9

Na nossa solução, estávamos alterando só no caso de 'num>maior'.
Mas também tem o caso 'num > segundo_maior'.

Isso pode ser resolvido com:
if(num > maior)
{
segundo_maior = maior;
maior = num;
}
else
if(num > segundo_maior)
segundo_maior = num;

Outro problema: note que estamos começando 'maior' e 'segundo_maior' com valor 0. Ou seja, podemos ter problemas se digitarmos valores negativos (na questão não diz que é pra colocar só positivos).

Luan Cardoso disse...

Muito obrigado pela dica.

Tenho outra dpuvida, na apostila de "DO...WHILE", quando executo os programas que contem " system("cls || clear"); ", aparece a mensagem " error: 'system' was not declared in this scope "

O que devo fazer?

Apostila C Progressivo disse...

Luan,

Além da stdio, adicione a stdlib também

Anônimo disse...

Gostaria que vocês postassem sobre o algoritmo de dijkstra em C.

@guipolonca disse...

Parabéns, o site é excelente e me ajudou muito!

Anônimo disse...

muito fera o site! Parabéns à equipe e muito obrigado por compartilhar conhecimento!

Anônimo disse...

Gostaria de contribuir com o site com
conteúdos, como posso fazer para ajudar ?

ralph disse...

Olá,
o tutorial de c está muito bom. Apenas no capítulo de modificadores de int está escrito: 'short' em inglês, significa curso e 'long', longo.

deveria ser:'short' em inglês, significa curto

valeu pela apostila online.
um abraço.

Apostila C Progressivo disse...

Opa, valeu ralph!

O corretor não avisou pois existe a palavra 'curso'.

Abraço.

hubert disse...

poderia me explicar esse exercício de função:

Desenvolva um programa em C que leia dois números e chame uma função que retorne
se os valores digitados são iguais ou diferentes. O programa deve ficar em execução até ser
digitado um valor negativo para o primeiro número.

hubert2@bol.com.br

Apostila C Progressivo disse...

Olá hubert,

Crie um programa que peça dois números. Passe esses números para a função.

Dentro da função você compara, se forem iguais, você retorna 1, se forem diferentes retorna 0 (um simples IF ELSE).

Você bota esse processo de perguntar os números e enviar pra função dentro de um laço, um WHILE por exemplo. Esse laço só vai terminar se o primeiro número digitado for negativo.

Carlos Augusto disse...

Olá Bom dia!

Gostaria de saber como faço para imprimir a saida de mais de um while, por exemplo:

int N, CONTADOR;
printf ("Digite um numero inteiro:");
scanf ("%i", &N);
CONTADOR=1;

printf("SOMA\n");
while(CONTADOR<=10)
{
printf("%i + %i = %i\n", N, CONTADOR, N+CONTADOR);
CONTADOR=CONTADOR+1;
}

printf("SUBTRACAO\n");
while(CONTADOR<=10)
{
printf("%i - %i = %i\n", N, CONTADOR, N-CONTADOR);
CONTADOR=CONTADOR+1;
}

return 0;
}

Imprime somente a saida do 1º while, depois a palavra SUBTRAÇÃO. Mas a saida do 2º while nao imprime.
Obrigado!
Carlos.

Apostila C Progressivo disse...

Carlos Augusto,

Note que ao término de seu primeiro laço a variável CONTADOR vai ter valor 11.

E pra ela iniciar o segundo ela, tem que ter valor menor que 10, é por isso que o segundo laço nem inicia.

Antes do segundo WHILE faça: CONTADOR=1

hubert disse...

muito obrigado pela a ajuda consegui montar a parte de comparação sem a função mas não sei colocar dentro da função poderia me ajudar.

Desenvolva um programa em C que leia dois números e chame uma função que retorne
se os valores digitados são iguais ou diferentes. O programa deve ficar em execução até ser
digitado um valor negativo para o primeiro número.


#include
#include

main()
{
int n1, n2;
printf("Digite o primeiro numero");
scanf("%d",&n1);

printf("Digite o segundo numero");
scanf("%d",&n2);

if (n1 > n2)
printf("O primeiro numero e o maior %d",n1);

if (n1 < n2)
printf("O segundo numero e o maior %d",n2);

system("pause");
}

asusg51j disse...

Boas sou um recente fá seu e do seu trabalho.

Sou um estudante e este site esta a ajudar imenso.

Gostava no entanto de saber se há alguma parte referente as variáveis estáticas é que não encontro, e é onde tenho mais dificuldades.

obrigado, cumprimentos

Marcelo Vieira disse...

Cara primeiro parabéns pelo site, estou estudando C e em Conceitos Básicos da Linguagem C, Recebendo números do usuário - A função scanf : no final existe um exercício, o mesmo solicita que se faça uma divisão de dois números Double, depois de muito quebrar a cabeça busquei na internet a solução vale a pena postar, talvez alguem tenha dado este erro no scanf colocar "%lf" ao invés de "%f". valeu.

Gabriel Baião disse...

ME AJUDEM?
" Sejam duas listas encadeadas l1 e l2 ordenadas. Escreva uma função que construa uma lista ordenada contendo os elementos que pertencem simultaneamente a l1 e l2. Suponha que as listas não contém elementos repetidos. As listas originais não podem ser alteradas. A assinatura desta função é dada por:

Tlista* insercao(Tlista* l1, Tlista* l2) "

Marcel Carvalho disse...

Muito boa apostila, realmente é difícil encontrar conteúdo em C tão bem explicado gratuitamente.

Mas acho que o formulário de inserção de comentários deveria ser incorporado a postagem e não em uma nova janela como está.

Anônimo disse...

tentei comentar usando a minha conta do google,mas foi pedida uma palavra-chave. Que palavra chave é essa?

Anônimo disse...

Equipe C progressivo, parabéns pelo site

André de Souza disse...

Parabéns pelo site, equipe C progressivo. Sempre que possível e satisfeito alguma coisa me deixar como as questoes de fibonacci e do diamante. eu postarei um comentário como forma de agradecimento.

Chayenne Barbosa disse...

Boa tarde, gostei muito dos videos sobre a linguagem C no Code blocks. Sera que eu poderia te mandar uma questão pra tu resolver? É que to precisando da resolução dela, mas não to conseguindo de jeito nenhum. Agradeceria demais!!
A questão é essa:

Deseja-se fazer sistema para informatizar um banco. Para isso os dados dos clientes do banco devem ser armazenados em arquivo de dados, que tem a seguinte estrutura:
Agencia (int)
Conta_corrente (int)
Nome (char [40])
Saldo (float)
Limite de cheque especial (float)

O sistema possue o seguinte menu:
[1] - Cadastrar Cliente
[2] - Consultar Saldo
[3] - Deposito
[4] - Saque
[5] - Encerrar conta
[6] - Sair
Opção:

Fazer um programa em C:
a) A função void para ler e armazenar no arquivo os dados dos clientes do banco, não admitir a entrada de agencia e conta já existente.
b) Fazer uma função void para consultar o saldo do cliente. Ao digitar a agencia e conta corrente do cliente deverá ser mostrado o Nome, o Saldo, o limite de cheque especial do cliente. Caso a agencia e conta corrente não esteja cadastrada informe CONTA CORRENTE INVALIDA!
c) Fazer uma função void para efetuar um deposito na conta corrente do cliente. Ao digitar a agencia e conta corrente do cliente e o valor a depositar atualizar o Saldo do cliente e informe DEPOSITO EFETUADO COM SUCESSO! Caso agencia e conta corrente não esteja cadastrada informe CONTA CORRENTE INVALIDA!
d) Fazer uma função void para efetuar um saque na conta corrente de um cliente. Ao digitar a agencia e conta corrente do cliente e o valor a sacar, verificar se o saldo + o limite de cheque especial são suficientes para autorizar o saque, em caso afirmativo atualizar o saldo do cliente e informe SAQUE EFETUADO COM SUCESSO! Caso não exista saldo suficiente informe SALDO INSUFICIENTE! Caso agencia e conta corrente não esteja cadastrada informe CONTA CORRENTE INVALIDA!
e) Fazer uma função void para encerrar a conta corrente de um cliente. Ao digitar a agencia e conta corrente do cliente, verificar se o saldo está zero, pois o encerramento da conta só poderá ser feito se a conta estiver com saldo zero, e perguntar se realmente deseja encerrar a conta do cliente se afirmativo proceder a exclusão e informe EXCLUSAO EFETUADA COM SUCESSO!
f) Faze uma função void para fazer o menu de opções como descrita acima.
g) Fazer a função main.

Anônimo disse...

Chayenne Barbosa: A resposta é fazer a função main.

Dejean Machado disse...

Irei estudar estrutura de Dados, no qual irá cair os assuntos abaixo. Gostaria de saber se o site contempla o assunto e, se não, gostaria da indicação de material sobre o assunto.

EMENTA:
Tipos abstratos de dados. Técnicas de utilização de apontadores. Representação e manipulação de filas, pilhas e árvores. Técnicas de busca de informação na memória principal

Anderson Moss º"º disse...

Boa noite. Tenho uma dúvida que me bloqueia muitas vezes que é a seguinte: Ainda sou iniciante em c, agora estou vendo pilhas, só pra te posicionar mais ou menos o quanto eu sei enfim, muitas vezes eu perco muito tempo tentando "tratar erros" e acaba que o programa fica muito complexo e perco muito tempo nisso, evitando que o usuário coloque uma letra no lugar de um número e coisas do tipo, erros de entrada. Eu devo me preocupar com isso ou deixo quieto por enquanto e considero que o usuário vai fazer certo, apenas para poupar tempo e deixar pra aprender isso mais pra frente ou devo aprender isso agora? Tem algum tutorial ensinando sobre isso? obg

Unknown disse...

Urgente! Preciso de ajuda no seguinte exercício de Programação em linguagem C:

Utilizando vetores e strings, faça com que o usuário digite uma palavra, em seguinte peça ao usuário uma frase, a partir daí o programa tem que contar quantas vezes a palavra inserida aparece na frase! Estou enviando o código de como eu fiz o programa para ver ser algum professor pode me ajudar, pois quase todo o programa está certo, só a parte de contar quantas vezes a palavra pedida ao usuário aparece na frase que também foi pedida na frase. Exemplo:
Insira uma palavra: Mesa
Insira uma frase: O jantar já está na mesa!
Quantas vezes aparece a palavra:
1 vez

CÓDIGO FONTE QUE EU FIZ:

#include
#include
#include

void fim()
{
printf("Fim do programa busca texto\n");
}

main()
{
char frase[999],pal[15],cod;
int x,y,i,c;
i=0;
c=0;
do{
printf("Informe uma palavra:");
scanf("%s",pal);
printf("Informe uma frase:");
scanf("%s",pal);

for(x=0;pal[x]!='\0';x++){
for(y=0;frase[y]!='\0';y++){
c=strcmp(frase,pal);
if(c==0){
i++;
}}
}

printf("Aparece %d \n",i);
printf("Deseja realizar novo calculo: s-Sim n-Nao");
scanf(" %c",&cod);
}
while(cod=='s');

fim();


system("pause");
}



obs: Por favor me ajudem, já tentei resolver a parte de contar quantas vezes a palavra aparece e não consigo de jeito nenhum, e é só esta parte que não está funcionando! Por favor, peço ajuda nesta questão! Entre em contato comigo por: alexandrecostabarrientos@gmail.com

Gostou desse tutorial de C?
Sabia que o acervo do portal C Progressivo é o mesmo, ou maior que, de um livro ou curso presencial?
E o melhor: totalmente gratuito.

Mas para nosso projeto se manter é preciso divulgação.
Para isso, basta curtir nossa página no Facebook e/ou clicar no botão +1 do Google.
Contamos e precisamos de seu apoio.