Olá Jhose, seja muito bem vindo. Imagine que você esteja se referindo ao programa onde escrevo o código, certo? Se sim, é a IDE Code Blocks para programação em C.
esse exercicio me deixou com umas duvidas, não sobre o exercicio em si, que eu consegui fazer. Mas foi sobre outras coisas que eu acabei pesquisando na tentativa de implementar no exercicio. 1- Eu comecei o exercicio com do while, mas depois tentei passar pra um formato que eu conheci em python (while True) so que não tava entendendo como fazer isso, entao botei while(1){código} e funcionou. Isso está certo ou tem outra maneira? 2- Eu tentei adicionar potenciação no código, não precisava mas eu acabei tentando. Vi um código de como era uma função em C e tentei fazer um função que calculasse potências. Ai escrevi o seguinte: ====================== int potencia(float a, float b) { float resultado = 1; int i; if(b != 0) { resultado = a; for(i=1; i < b; ++i) resultado *= a; } return(resultado); } ====================== O return sempre é 0.000000, n entendi pq vem dessa forma. Pq quando eu faço com int em vez de float os valores a, b, resultado, ele retorna um valor certo, por exemplo: 5⁵ = 3125 Mas fora isso o código da aula ficou assim(um pouco bagunçado mas foi kk): #include int main() { float a, b; int escolha; while(1) { printf(" ================================================================== "); printf("Escolha a operação a efetuar: "); printf("[1]Adição [2]Subtração [3]Multiplicação [4]Divisão [5]Sair "); printf("Sua escolha: "); scanf("%d", &escolha); if(escolha == 5) break; printf(" Digite um número: "); scanf("%f", &a); printf(" Digite um outro número para operar com %.2f: ", a); scanf("%f", &b); switch(escolha) { case 1: printf(" O resultado da adição %.2f + %.2f foi: %.2f ", a, b, a + b); break; case 2: printf("O resultado da subtração %.2f - %.2f foi: %.2f ", a, b, a - b); break; case 3: printf("O resultado da multiplicação %.2f * %.2f foi: %.2f ", a, b, a * b); break; case 4: if(b != 0) printf("O resultado da divisão %.2f / %.2f foi: %.2f ", a, b, a / b); else printf("Não é possível dividir por 0. "); break; default: printf(""); } } return 0; }
Olá Ryan. 1) Você pode usar while(1) sem problema, mas eu não gosto dele rsrsrs. While(1) é um loop infinito, ou seja, não há uma opção para finalizar o programa, lembre-se que qualquer coisa diferente de zero em C é sempre verdadeiro. Eu profiro perguntar ao usuário o que ele deseja fazer e depois testar essa variável no while. 2) Muito bem. Em programação a curiosidade e a capacidade de buscar soluções são fundamentais. Quanto ao problema do retorno zero acredito que se deva ao fato de sua função retornar um int mas a variável resultado ser do tipo float. Observe a assinatura da sua função: int potencia(float a, float b) A primeira palavra a esquerda, int, indica que sua função retorna um valor inteiro, mas na verdade a variável retornada é do tipo float, então a assinatura correta fica assim: float potencia(float a, float b)
Olá Jefferson. Como assim aumentar a quantidade de dígitos? Você quer aumentar a quantidade de dígitos (de um número) ou a quantidade de valores para realizar uma operação?
Uhuu consegui fazer,a única coisa que fiz diferente, foi que não coloquei àquele último if, coloquei direto no while, é funcionou, eu queria melhorar usando aquela opção de apagar que vc ensinou, mais não achei em qual aula que foi, acho que é clt, não tenho certeza, consegue me ajudar?
Eu te amo amigo, eu tava me matando p saber o porque tava dando erro meu codigo sendo que tava igual o do video, quando desci pros comentario apareceu e deu certo de primeira, obrigado me salvou de horas de estresse!
Olá Karen. Para que as 4 operações sejam realizadas basta retirar o switch case. É a estrutura de seleção switch que faz a escolha de uma das operações.
Não exatamente Tayrone. Para imprimir as 4 operações matemáticas juntas basta retirar o switch case completo. Você deixou o default, um break e faltou as outras três operações. #include #include int main() { int opcao, num1, num2; do { printf("Digite dois valores: "); scanf("%d%d",&num1, &num2); printf("Divisao: %d ", num1 / num2); printf("Multiplicacao: %d ", num1 * num2); printf("Soma: %d ", num1 + num2); printf("Subtracao: %d ", num1 - num2); printf("Digite zero para sair ou outro valor para reiniciar: "); scanf("%d", &opcao); } while(opcao != 0); }
Boa noite, Wagner. Estou tentando resolver um exercício que recebe dois números inteiro e um dos caractere que represente as operações básicas '+', '-', '*', '/' para imprimir o resultado da operação indicada pelo usuário. Qual o problema com o meu código? #include #include int main(int argc, char *argv[]) { int n1 = 0, n2 = 0; char operador; scanf("%d%d%c", &n1,&n2,&operador); if(operador == '+'){ printf("RESP:%d",n1+n2); } else if(operador == '-'){ printf("RESP:%d",n1-n2); } else if(operador == '*'){ printf("RESP:%d",n1*n2); } else if(operador == '/'){ printf("RESP:%d",n1/n2); } else{ printf("Invalido"); } return 0; }
Olá Vitória. O problema está na leitura de caracteres. Você fez as aulas iniciais do curso sobre o tipo char? Você está lendo dois números e um caracter e provavelmente está digitando assim: "4 5 +" Aí eu te pergunto: o + é o primeiro caracter depois do segundo número? Se tiver dúvidas pra entender o que está acontecendo imprima na tela o valor da variável operador usando %d, assim: printf("%d", operador); Em seguida, procure na tabela ascii qual caracter possui o código que foi impresso na tela.
Gostei desse exercício, nele é possível mesclar alguns conceitos de aulas anteriores. Parabéns"
TOP DE MAIS.. (EU NÃO SEI COMO ESSE VIDEO TEM POUCOS LIKES, TA DOIDO O CARA E UM MESTRE!!!
Excelente aula, me ajudou muito !
isso aqui pra iniciante é o mundo
TOP! SALVOU MEU LABORATORIO.
Que bom que ajudou 👍
Valeu Cara! Me Salvou!
Por nada Hiago 😉
e caso eu queria que minha divisão de um valor quebrado? como utilizo o float?
como sou novo no canal e cai de paraquedas nesse vídeo, qual é o nome desse app?
Olá Jhose, seja muito bem vindo.
Imagine que você esteja se referindo ao programa onde escrevo o código, certo? Se sim, é a IDE Code Blocks para programação em C.
esse exercicio me deixou com umas duvidas, não sobre o exercicio em si, que eu consegui fazer. Mas foi sobre outras coisas que eu acabei pesquisando na tentativa de implementar no exercicio.
1- Eu comecei o exercicio com do while, mas depois tentei passar pra um formato que eu conheci em python (while True) so que não tava entendendo como fazer isso, entao botei while(1){código} e funcionou. Isso está certo ou tem outra maneira?
2- Eu tentei adicionar potenciação no código, não precisava mas eu acabei tentando. Vi um código de como era uma função em C e tentei fazer um função que calculasse potências.
Ai escrevi o seguinte:
======================
int potencia(float a, float b)
{
float resultado = 1;
int i;
if(b != 0)
{
resultado = a;
for(i=1; i < b; ++i)
resultado *= a;
}
return(resultado);
}
======================
O return sempre é 0.000000, n entendi pq vem dessa forma. Pq quando eu faço com int em vez de float os valores a, b, resultado, ele retorna um valor certo, por exemplo: 5⁵ = 3125
Mas fora isso o código da aula ficou assim(um pouco bagunçado mas foi kk):
#include
int main()
{
float a, b;
int escolha;
while(1)
{
printf("
==================================================================
");
printf("Escolha a operação a efetuar:
");
printf("[1]Adição
[2]Subtração
[3]Multiplicação
[4]Divisão
[5]Sair
");
printf("Sua escolha: ");
scanf("%d", &escolha);
if(escolha == 5)
break;
printf("
Digite um número: ");
scanf("%f", &a);
printf("
Digite um outro número para operar com %.2f: ", a);
scanf("%f", &b);
switch(escolha)
{
case 1:
printf("
O resultado da adição %.2f + %.2f foi: %.2f
", a, b, a + b);
break;
case 2:
printf("O resultado da subtração %.2f - %.2f foi: %.2f
", a, b, a - b);
break;
case 3:
printf("O resultado da multiplicação %.2f * %.2f foi: %.2f
", a, b, a * b);
break;
case 4:
if(b != 0)
printf("O resultado da divisão %.2f / %.2f foi: %.2f
", a, b, a / b);
else
printf("Não é possível dividir por 0.
");
break;
default:
printf("");
}
}
return 0;
}
Olá Ryan.
1) Você pode usar while(1) sem problema, mas eu não gosto dele rsrsrs. While(1) é um loop infinito, ou seja, não há uma opção para finalizar o programa, lembre-se que qualquer coisa diferente de zero em C é sempre verdadeiro. Eu profiro perguntar ao usuário o que ele deseja fazer e depois testar essa variável no while.
2) Muito bem. Em programação a curiosidade e a capacidade de buscar soluções são fundamentais.
Quanto ao problema do retorno zero acredito que se deva ao fato de sua função retornar um int mas a variável resultado ser do tipo float. Observe a assinatura da sua função:
int potencia(float a, float b)
A primeira palavra a esquerda, int, indica que sua função retorna um valor inteiro, mas na verdade a variável retornada é do tipo float, então a assinatura correta fica assim:
float potencia(float a, float b)
Ola boa tarde! Se eu quiser aumentar a quantidade de dígitos? É só aumentar em int opcao; num1, num2;?
Olá Jefferson.
Como assim aumentar a quantidade de dígitos?
Você quer aumentar a quantidade de dígitos (de um número) ou a quantidade de valores para realizar uma operação?
Uhuu consegui fazer,a única coisa que fiz diferente, foi que não coloquei àquele último if, coloquei direto no while, é funcionou, eu queria melhorar usando aquela opção de apagar que vc ensinou, mais não achei em qual aula que foi, acho que é clt, não tenho certeza, consegue me ajudar?
Parabéns Caren :)
Para limpar o console você pode usar o system("clear"); no Linux e system("cls"); no Windows.
int main()
{
setlocale(LC_ALL, "Portuguese");
int opcoes;
float n1, n2, resultado;
do
{
printf("
\tCalculadora
");
printf("
\t1 - Somar\t2- Subtrair\t3-Multiplicar\t4-Dividir\t0-Sair
");
printf("Digite uma opção: ");
scanf("%d", &opcoes);
switch (opcoes)
{
case 0:
printf("Sair");
break;
case 1:
printf("1 - Somar
");
printf("
Informe um valor: ");
scanf("%f", &n1);
printf("
Informe outro valor: ");
scanf("%f", &n2);
resultado = n1 + n2;
printf("Resultado: %.2f", resultado);
break;
case 2:
printf("2 - Subtrair");
printf("
Informe um valor: ");
scanf("%f", &n1);
printf("
Informe outro valor: ");
scanf("%f", &n2);
resultado = n1 - n2;
printf("Resultado: %.2f", resultado);
break;
case 3:
printf("3 - Multiplicar");
printf("
Informe um valor: ");
scanf("%f", &n1);
printf("
Informe outro valor: ");
scanf("%f", &n2);
resultado = n1 * n2;
printf("Resultado: %.2f", resultado);
break;
case 4:
printf("4 - Dividir");
printf("
Informe um valor: ");
scanf("%f", &n1);
printf("
Informe outro valor: ");
scanf("%f", &n2);
while(n2 == 0)
{
printf("Nao existe divisao por 0. Informe outro valor!");
scanf("%f", &n2);
}
resultado = n1/n2;
printf("Resultado: %.2f", resultado);
break;
default:
printf("Opcao invalida");
break;
}
}while(opcoes != 0);
return 0;
}
Eu te amo amigo, eu tava me matando p saber o porque tava dando erro meu codigo sendo que tava igual o do video, quando desci pros comentario apareceu e deu certo de primeira, obrigado me salvou de horas de estresse!
como fazer as 4 operações aparecerem ao mesmo tempo?
Olá Karen.
Para que as 4 operações sejam realizadas basta retirar o switch case. É a estrutura de seleção switch que faz a escolha de uma das operações.
@@programeseufuturo #include
#include
int main() {
int opcao, num1, num2;
do {
printf("
1 - Soma
2 - Subtracao
3 - Multiplicacao
4 - Divisao
0 - Sair
");
scanf("%d", &opcao);
if(opcao > 0 && opcao < 5){
printf("Digite dois valores: ");
scanf("%d%d",&num1, &num2);
}
printf("Divisao: %d
", num1 / num2);
break;
default:
printf("Opcao inválida.
Digite outra opcao: ");
}
} while(opcao != 0);
}
No Caso ficaria assim ?
Não exatamente Tayrone.
Para imprimir as 4 operações matemáticas juntas basta retirar o switch case completo. Você deixou o default, um break e faltou as outras três operações.
#include
#include
int main() {
int opcao, num1, num2;
do {
printf("Digite dois valores: ");
scanf("%d%d",&num1, &num2);
printf("Divisao: %d
", num1 / num2);
printf("Multiplicacao: %d
", num1 * num2);
printf("Soma: %d
", num1 + num2);
printf("Subtracao: %d
", num1 - num2);
printf("Digite zero para sair ou outro valor para reiniciar: ");
scanf("%d", &opcao);
} while(opcao != 0);
}
como fazer isso com funçoes?
Boa noite, Wagner.
Estou tentando resolver um exercício que recebe dois números inteiro e um dos caractere que represente as operações básicas
'+', '-', '*', '/' para imprimir o resultado da operação indicada pelo usuário.
Qual o problema com o meu código?
#include
#include
int main(int argc, char *argv[]) {
int n1 = 0, n2 = 0;
char operador;
scanf("%d%d%c", &n1,&n2,&operador);
if(operador == '+'){
printf("RESP:%d",n1+n2);
}
else if(operador == '-'){
printf("RESP:%d",n1-n2);
}
else if(operador == '*'){
printf("RESP:%d",n1*n2);
}
else if(operador == '/'){
printf("RESP:%d",n1/n2);
}
else{
printf("Invalido");
}
return 0;
}
Olá Vitória.
O problema está na leitura de caracteres. Você fez as aulas iniciais do curso sobre o tipo char?
Você está lendo dois números e um caracter e provavelmente está digitando assim: "4 5 +"
Aí eu te pergunto: o + é o primeiro caracter depois do segundo número?
Se tiver dúvidas pra entender o que está acontecendo imprima na tela o valor da variável operador usando %d, assim: printf("%d", operador);
Em seguida, procure na tabela ascii qual caracter possui o código que foi impresso na tela.
Agora entendi, muito obrigada, me salvou mais uma vez.
Por nada :)
qual programa é esse ?
code blocks.