Ir ao conteúdo

Problemas em múltiplos em C


Diogodrb

Posts recomendados

Postado

Galera, preciso fazer um programa que leia um inteiro e diga se é ou não é múltiplo de 11!

"Os números de entrada podem conter até 1100 dígitos. Uma linha contendo o número 0 indica o término da entrada de valores."

Não entendi muito bem essa última parte!

Alguém pode me ajudar? :lol:

Postado

Bom, vamos lá.

Para um número ser múltiplo de 11, você concorda que o resto dele dividido por 11 tem que ser igual a zero? Para fazer isso é bem simples: Crie uma variável para o numero, receba-o e após isso coloque as condições num if. Exemplo:


if (num % 11 == 0) {
printf ("O numero e multiplo de 11\n");
}

Deixando essa parte de lado, o programa também pede que você limite os dígitos até 1100, para isso basta ficar dividindo o número por 10 até que o resultado seja zero. Para isso crie uma variável que irá contar os dígitos.


if (num == 0) {
cont = 1;
}
else {
while (num != 0) {
cont++;
num = num/10;
}
}

E a outra condição é que se o num for igual a zero o programa pare a execução. Exemplo:


if (num == 0) {
return (0);
getchar();
}

Postado

Obrigado pela resposta, me ajudou muito!

Eu tenho que criar a variavel int para num e cont certo?

Mas ai falta o scanf, botei ("%d", num) e não deu, acredito estar errado, sabe como fica certinho? ^_^ a

Postado
Obrigado pela resposta, me ajudou muito!

Eu tenho que criar a variavel int para num e cont certo?

Mas ai falta o scanf, botei ("%d", num) e não deu, acredito estar errado, sabe como fica certinho? ^_^ a

a sintaxe do scanf tá errada, o correto é:

scanf ("%d", &num);

Postado

Sim, eu já tinha arrumado!

Ai não está certo... consegue ver o que esta errado?


#include <stdio.h>
#include <stdlib.h>

int main()
{
int num;

printf ("Digite o numero\n");
scanf("%d", &num);

if (num % 11 == 0)
{
printf ("O numero e multiplo de 11\n");
}
if (num == 0)
{
cont = 1;
}
else {
while (num != 0) {
cont++;
num = num/10;
}
}

system("PAUSE");
return 0;
}

Falaram agora aqui, que o professor disse que é com vetor isso, um vetor[1100] e não %11

Postado

simples.

faça um for de 1 até 1100

a condição do if é igual


for (int numero =1;numero<=1100;numero++)
{
if (numero % 11 == 0)
{
printf(" numero %d e multiplo de 11",numero);
contador++;
}
}

Postado
simples.

faça um for de 1 até 1100

a condição do if é igual


for (int numero =1;numero<=1100;numero++)
{
if (numero % 11 == 0)
{
printf(" numero %d e multiplo de 11",numero);
contador++;
}
}

É só isso dai?

Postado

RESOLVIDO


#include <stdio.h>

int main ()
{

char z[1001];
int x,num1,num2,sub,y;
while (scanf("%s",&z))
{
y=0;
num1=0;
num2=0;
for (x=0;z[x];x++)
{
if(z[x]!='0')
{
y=1;
break;
}
}
if (!y)
return 0;
else
{
for (x=0;z[x];x++)
{
if(x%2==0)
num2 += z[x]-48;
else
num1 += z[x]-48;
}
sub = num2-num1;
printf("%s %s",z,((sub%11==0) || sub==0)?"é multiplo de 11.\n":"Nao é multiplo de 11.\n");
}
}
return 0;
}

  • Moderador
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

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...