Ir ao conteúdo
  • Cadastre-se

Dúvida em C


Jordan Rodrigues

Posts recomendados

Olá pessoal, boa tarde! Estarei ingressando na universidade nesta segunda-feira em Ciência da Computação, e já comecei a dar uma olhada em programação. Gostaria de saber o erro (na verdade os vários erros que devem ter) no seguinte algorítmo, cujo objetivo é perguntar o nome de um aluno, pedir por suas notas do primeiro e segundo bimestres (sendo que o segundo tem peso 2), fazer o cálculo da média ponderada deste aluno e verificar se foi aprovado ou não. Por favor me ajudem e justifique os erros para que eu entenda, o arquivo não está nem sendo compilado (não abre aquela janela preta), muito obrigado!!!


#include <stdio.h>
int main ()
{
int Nome, b1, b2, s1
printf ("Oi! Por favor, informe o seu nome: ");
scanf (%d", &Nome);
printf (Agora, por favor, digite a nota do seu primeiro bimestre: ");
scanf ("%d", &b1);
printf ("Agora, a nota do segundo bimestre: ");
scanf ("%d, &b2);
s1 = (b1 + 2*b2)/3;
if
s1 >= 6.0;
printf ("O(a) estudante %d foi aprovado(a), com a nota de %d", Nome, s1);
else
s1 < 6.0;
printf ("O(a) estudante %d foi reprovado(a), com a nota de %d", Nome, s1);
getchar ();
return 0;
}

OBS.: O Dev C/C++ começou a dar erro até com algorítmos simples que estão certos aqui em casa, qual outra IDE/compilador vocês indicam?? Obrigado!

Link para o comentário
Compartilhar em outros sites

Jordan,

Antes de tudo, desejo-lhe que tenha uma ótima vida acadêmica.

Agora, sobre a sua dúvida: eu sugiro fortemente que você dê uma lida num texto básico sobre programação C para que você possa se ambientar com a sintaxe, com os tipos primitivos, etc.

Eu tenho sempre indicado um curso clássico da UFMG e que neste caso responde a todas às suas dúvidas:

http://www.ead.cpdee.ufmg.br/cursos/C/c.html

Serve como guia de referência e também pode ser lido sequencialmente.

Um abraço,

;)

LNW

Link para o comentário
Compartilhar em outros sites


#include <stdio.h>
#include <conio.h>
#include stdlib.h>
int main ()
{
int b1, b2, s1;
char Nome[20];
printf ("Oi! Por favor, informe o seu nome: ");
scanf (%s", &Nome);
printf (Agora, por favor, digite a nota do seu primeiro bimestre: ");
scanf ("%d", &b1);
printf ("Agora, a nota do segundo bimestre: ");
scanf ("%d, &b2);
s1 = (b1 + 2*b2)/3;
if(s1 >= 6.0){
printf ("O(a) estudante %d foi aprovado(a), com a nota de %d", Nome, s1);
}
else
{
printf ("O(a) estudante %d foi reprovado(a), com a nota de %d", Nome, s1);
}
getch();
return 0;
}

não compilei aqui, acabei de formatar o pc... mas testa aí, é algo bem próximo a isso.

Link para o comentário
Compartilhar em outros sites

Jordan,

Antes de tudo, desejo-lhe que tenha uma ótima vida acadêmica.

Agora, sobre a sua dúvida: eu sugiro fortemente que você dê uma lida num texto básico sobre programação C para que você possa se ambientar com a sintaxe, com os tipos primitivos, etc.

Eu tenho sempre indicado um curso clássico da UFMG e que neste caso responde a todas às suas dúvidas:

http://www.ead.cpdee.ufmg.br/cursos/C/c.html

Serve como guia de referência e também pode ser lido sequencialmente.

Um abraço,

;)

LNW

Cara, muito obrigado, tanto por me desejar uma boa vida acadêmica quanto por liberar esse link pra mim, valeu mesmo!

não compilei aqui, acabei de formatar o pc... mas testa aí, é algo bem próximo a isso.

Então cara, valeu aí pelo código, só mudei umas coisinhas pra fazê-lo funcionar, valeu mesmo pela ajuda! Ficou assim:


#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main()
{
float b1, b2, s1;
char Nome[30];
printf ("Oi. Digite seu nome por favor: ");
scanf ("%s", &Nome);
printf ("Agora, digite a nota do seu primeiro bimestre: ");
scanf ("%f", &b1);
printf ("Agora, digite a nota do seu segundo bimestre: ");
scanf ("%f", &b2);
s1 = (b1+2*b2)/3;
if (s1 >= 6)
{
printf ("O(a) aluno(a) %s foi aprovado(a) com a nota de: %f", Nome, s1);
}
else
{
printf ("O(a) aluno(a) %s foi reprovado(a) com a nota de: %f", Nome, s1);
}
getch();
return 0;
}

Só ocorreu alguns problemas. Por exemplo, quando eu coloco "Jordan", como nome, ocorre td bem. Quando eu coloca algum nome com espaço, tipo "Jordan Rodrigues", dá mó doidera, o programa n funciona direito. Antes, n funcionava número com vírgula, mas aí mudei todos "%d" para "%f" e "int" para "float", aí funcionou legal. Só n sei o que fazer em relação ao bug do nome mesmo que não rola de botar espaço. Mas valeu mesmo ae gente \o/

Link para o comentário
Compartilhar em outros sites

Olá Jordan,

Para contornar esse problema do espaço, faça assim:


scanf ("%[^\n]s", Nome);

Note que não é necessário o & para a leitura de strings em C com scanf().

Abs.

LNW

Cara, fui usar sem "&" e o programa parava de funcionar, aí aparecia aquela janelinha dizendo que o Windows tava procurando por uma solução e tal. Mas a parada agora tá funcionando com espaço, muito obrigado amigo! Poderia me dizer o que "[^\n]" faz? Valeu fera!!!

Link para o comentário
Compartilhar em outros sites

Jordan,

Cara, fui usar sem "&" e o programa parava de funcionar, aí aparecia aquela janelinha dizendo que o Windows tava procurando por uma solução e tal.

Certamente você deve ter extrapolado o tamanho limite da string.. use algo como 'char Nome[80];' para evitar esses problemas. Teste novamente e sem o &, que é a sintaxe correta.

Mas a parada agora tá funcionando com espaço, muito obrigado amigo! Poderia me dizer o que "[^\n]" faz? Valeu fera!!!

Aquilo define o delimitador da string para \n = newline = tecla Enter (Linux ou Win). Então, scanf() fará a leitura de todos os caracteres (incluindo espaços) até encontrar um \n.

Abs.

NW

Link para o comentário
Compartilhar em outros sites

Jordan,

Certamente você deve ter extrapolado o tamanho limite da string.. use algo como 'char Nome[80];' para evitar esses problemas. Teste novamente e sem o &, que é a sintaxe correta.

Aquilo define o delimitador da string para \n = newline = tecla Enter (Linux ou Win). Então, scanf() fará a leitura de todos os caracteres (incluindo espaços) até encontrar um \n.

Abs.

NW

Tá show cara, brigadão ae o/

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

×
×
  • Criar novo...