Ir ao conteúdo
  • Cadastre-se
MatheusPJ

Numeros negativos na matriz em zero / votação do impeachment como faz ?

Recommended Posts

Bom dia,


 

Estou amarrado em duas questão da minha faculdade, ja tentei vários métodos e procurei até mesmo possíveis locuções para duas questões de um exercício que meu professor de linguagem C nos repassou para fazer em casa, que no caso são esses logo abaixo .

[Problemas]
- Utilizando estrutura de repetição, crie um algoritmo que modifique os números negativos da matriz abaixo por valor zero.

M = -1 3 5 6 8 1 2 4 -5

      3 -5 2 5 7 8 1 -8 3

      0 4 -3 1 6 7 -9 2 3

      4 2 6 -1 8 -9 2 0 8

       8 0 8 7 -8 4 2 6 1

 

 

- . Faça um algoritmo para contar quais coisas são defendidas pela população local:

 

1 - Impeachment, 2 - Golpe, 3 - Lulinha, 4 - Dilmãe. ( Ps: meu professor é um pouco irônico com questões '-' )

 

O programa deve ler os votos continuamente e armazená-los em um vetor. A votação é encerrada quando o valor 0 (Zero) for digitado. Ao final, imprima a quantidade de votos de cada situação.

 

 

Pronto galera são essas duas questões em si que estão me atrasando, não consigo fazer por nada, quem puder me ajudar nessa fico grato .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu vi gente falando que não é certo passar o código inteiro sem que você poste um pedaço do seu, então vou dar algumas dicas que eu acho que funciona.

No exercício um é só você correr a matriz inteira conferindo cada valor e trocando se necessário:

Citação

for(i=0;i<tam;i++)

if(M<0)

M=0;

No exercício dois é só você fazer um switch case dentro de um do while, sendo que cada uma das opções vai ter uma variável inteira para guardar quantas vezes foi inserido, use também uma outra variavel inteira para guardar o numero total de votos. O do while finaliza quando a opção for igual a zero.

Citação

do{

case 1:

impeachment++;

total++;

break;

case 2:

golpe++;

total++;

break;

case 3:

lulinha++;

total++;

break;

case 4:

dilmae++;

total++;

break;

default:

break;

}while(op!=0);

Depois é só imprimir normal, por exemplo:

Citação

for(i=0;i<total;i++)

printf("Impeachment = %d\n", impeachment);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@MassakiMsk Desculpe, não sabia dessa regra do forum, já fiz alguma coisa da 1º, mais ainda falto algo,

 

 

#include <stdio.h>


int main (){
    
    int m[5][9] = { -1, 3, 5, 6, 8, 1, 2, 4, -5,
                    3, -5, 2, 5, 7, 8, 1, -8, 3,
                    0, 4, -3, 1, 6, 7, -9, 2, 3,
                    4, 2, 6, -1, 8, -9, 2, 0, 8,
                    8, 0, 8, 7, -8, 4, 2, 6, 1,      
                                                 };                             
    int l,c ;
    
    for (l = 0, l<=0, l++){
        for (c = 0, c<=2, c++){
            if (m[l][c] f 0){
                m[l][c] = 0 ;
            }
        }
    }
    for {
        for {
            printf ("%d",m[l][c]);
        }
        printf ("\n");
    }
    
    return 0;
}

 

 

Ainda existe um erro no codigo, mais não to conseguindo identificar . Obrigado por tentar ajudar .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, não sei por que, mas o forum aqui me mostra os codigos bugados faltando algumas coisas, mas acho que entendi o que voce tinha feito.

 

1º: Você declarou a matriz de 5x9, mas definiu os valores como se fosse um vetor de 45 posições. O jeito certo é assim:

Citação

int m[5][9] = {{ -1, 3, 5, 6, 8, 1, 2, 4, -5},
                    {3, -5, 2, 5, 7, 8, 1, -8, 3},
                    {0, 4, -3, 1, 6, 7, -9, 2, 3},
                    {4, 2, 6, -1, 8, -9, 2, 0, 8},
                    {8, 0, 8, 7, -8, 4, 2, 6, 1}};

2º: O ciclo FOR tem que ir de 0 até o tamanho do seu vetor, no caso 5x9, e dentro dele fica assim:

Citação

for (l = 0; l<5; l++){
      for (c = 0; c<9; c++){
          if (m[l][c] < 0){
              m[l][c] = 0 ;
          }
      }
}

3º: Esqueci de dizer, mas você tinha colocado virgulas para separar os parametros do FOR, o certo é colocar ponto-virgula ( ; )

 

O código completo:

#include <stdio.h>

int main (){

    int m[5][9] = {{ -1, 3, 5, 6, 8, 1, 2, 4, -5},
                    {3, -5, 2, 5, 7, 8, 1, -8, 3},
                    {0, 4, -3, 1, 6, 7, -9, 2, 3},
                    {4, 2, 6, -1, 8, -9, 2, 0, 8},
                    {8, 0, 8, 7, -8, 4, 2, 6, 1}};
    int l,c ;

    for (l = 0; l<5; l++){
        for (c = 0; c<9; c++){
            if (m[l][c] < 0){
                m[l][c] = 0 ;
            }
        }
    }
    for (l = 0; l<5; l++){
        for (c = 0; c<9; c++){
            printf ("%d ",m[l][c]);
        }
        printf ("\n");
    }

    return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×