Ir para conteúdo

Arquivado

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

  • 0
lukasc95

Algoritimo em c

Pergunta

1 resposta a esta questão

Recommended Posts

tenho esse programa, mas não consigo colocar números negativos ai, alguém pode ajudar?

#include<stdio.h>
#include<string.h>
int cont=0,b;//b tambem define 01unidade 02dezena 03centena 04milhar 05milhao nessa ordem crescente 
char valor[20],imprimir[200];
void umd(){
         switch(valor[b]){
                          case '1':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," um ");break;//verifica caso dgito seja um
                          case '2':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," dois ");break;
                          case '3':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," tres ");break;
                          case '4':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," quatro ");break;
                          case '5':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," cinco ");break;
                          case '6':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," seis ");break;
                          case '7':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," sete ");break;
                          case '8':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," oito ");break;
                          case '9':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," nove ");break;
                }
}
void doisd(){
     if(valor[b]=='1'){
                switch(valor[b-1]){
                          case '0':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," dez ");break;
                          case '1':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," onze ");break;//verifica caso dgito seja um
                          case '2':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," doze ");break;
                          case '3':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," treze ");break;
                          case '4':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," quatorze ");break;
                          case '5':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," quinze ");break;
                          case '6':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," dezesseis ");break;
                          case '7':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," dezessete ");break;
                          case '8':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," dezoito ");break;
                          case '9':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," dezenove ");break;
                }
     }
     else{ 
         switch(valor[b]){//se for zero nao faz nada
                          case '2':if(cont>=3)strcat(imprimir,"e");strcat(imprimir," vinte ");break;//verifica caso dgito seja um
                          case '3':if(cont>=3)strcat(imprimir,"e");strcat(imprimir," trinta ");break;
                          case '4':if(cont>=3)strcat(imprimir,"e");strcat(imprimir," quarenta ");break;
                          case '5':if(cont>=3)strcat(imprimir,"e");strcat(imprimir," cinquenta ");break;
                          case '6':if(cont>=3)strcat(imprimir,"e");strcat(imprimir," sessenta ");break;
                          case '7':if(cont>=3)strcat(imprimir,"e");strcat(imprimir," setenta ");break;
                          case '8':if(cont>=3)strcat(imprimir,"e");strcat(imprimir," oitenta ");break;
                          case '9':if(cont>=3)strcat(imprimir,"e");strcat(imprimir," noventa ");break;
                }          
         }
}

void tresd(){
         switch(valor[b]){//se for zero nao faz nada
                          case '1':if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir," cem "); else strcat(imprimir," cento ");break;//verifica caso dgito seja um
                          case '2':strcat(imprimir," duzentos ");break;
                          case '3':strcat(imprimir," trezentos ");break;
                          case '4':strcat(imprimir," quatrocentos ");break;
                          case '5':strcat(imprimir," quinhentos ");break;
                          case '6':strcat(imprimir," seiscentos ");break;
                          case '7':strcat(imprimir," setecentos ");break;
                          case '8':strcat(imprimir," oitocentos ");break;
                          case '9':strcat(imprimir," novecentos ");break;
                }          
}
void quatrod(){
           switch(valor[b]){//se for zero nao faz nada
                          case '1':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," um mil ");break;//verifica caso dgito seja um
                          case '2':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," dois mil");break;
                          case '3':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," tres mil ");break;
                          case '4':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," quatro mil ");break;
                          case '5':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," cinco mil ");break;
                          case '6':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," seis mil ");break;
                          case '7':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," sete mil ");break;
                          case '8':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," oito mil ");break;
                          case '9':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," nove mil ");break;
                }          
     
}                           
void cincod(){
     if(valor[b-1]=='0'&&valor[b]=='1'){
         switch(valor[b]){
                          case '1':strcat(imprimir," dez mil ");break;//verifica caso dgito seja um
                         
                }
     }
     else if(valor[b]=='1'){          
         switch(valor[b-1]){//se for zero nao faz nada
                          case '1':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," onze mil ");break;//verifica caso dgito seja um
                          case '2':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," doze mil ");break;
                          case '3':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," treze mil ");break;
                          case '4':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," quatorze mil ");break;
                          case '5':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," quinze mil ");break;
                          case '6':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," dezesseis mil ");break;
                          case '7':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," dezessete mil ");break;
                          case '8':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," dezoito mil ");break;
                          case '9':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," dezenove mil ");break;
                }          
         }
         else{ 
                  switch(valor[b]){//se for zero nao faz nada
                          case '2':if(cont>=7)strcat(imprimir,"e");strcat(imprimir," vinte ");if((valor[b-1])=='0')strcat(imprimir,"mil ");break;//verifica caso dgito seja um
                          case '3':if(cont>=7)strcat(imprimir,"e");strcat(imprimir," trinta ");if((valor[b-1])=='0')strcat(imprimir,"mil ");break;
                          case '4':if(cont>=7)strcat(imprimir,"e");strcat(imprimir," quarenta ");if((valor[b-1])=='0')strcat(imprimir,"mil ");break;
                          case '5':if(cont>=7)strcat(imprimir,"e");strcat(imprimir," cinquenta ");if((valor[b-1])=='0')strcat(imprimir,"mil ");break;
                          case '6':if(cont>=7)strcat(imprimir,"e");strcat(imprimir," sessenta ");if((valor[b-1])=='0')strcat(imprimir,"mil ");break;
                          case '7':if(cont>=7)strcat(imprimir,"e");strcat(imprimir," setenta ");if((valor[b-1])=='0')strcat(imprimir,"mil ");break;
                          case '8':if(cont>=7)strcat(imprimir,"e");strcat(imprimir," oitenta ");if((valor[b-1])=='0')strcat(imprimir,"mil ");break;
                          case '9':if(cont>=7)strcat(imprimir,"e");strcat(imprimir," noventa ");if((valor[b-1])=='0')strcat(imprimir,"mil ");break;
                  }          
         }
}         
         
void seisd(){
         switch(valor[b]){//se for zero nao faz nada
                          case '1':if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir," cem mil");else strcat(imprimir," cento ");break;//verifica caso dgito seja um
                          case '2':strcat(imprimir," duzentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"mil ");break;
                          case '3':strcat(imprimir," trezentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"mil ");break;
                          case '4':strcat(imprimir," quatrocentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"mil ");break;
                          case '5':strcat(imprimir," quinhentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"mil ");break;
                          case '6':strcat(imprimir," seiscentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"mil ");break;
                          case '7':strcat(imprimir," setecentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"mil ");break;
                          case '8':strcat(imprimir," oitocentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"mil ");break;
                          case '9':strcat(imprimir," novecentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"mil ");break;
         }
}
void seted(){
     if(cont>=7)
         switch(valor[b]){//se for zero nao faz nada
                          case '1':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," um milhao ");break;//verifica caso dgito seja um
                          case '2':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," dois milhoes ");break;
                          case '3':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," tres milhoes ");break;
                          case '4':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," quatro milhoes ");break;
                          case '5':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," cinco milhoes ");break;
                          case '6':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," seis milhoes ");break;
                          case '7':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," sete milhoes ");break;
                          case '8':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," oito milhoes ");break;
                          case '9':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," nove milhoes ");break;
                }          
     
}
void oitod(){
     if(valor[b-1]=='0'&&valor[b]=='1'){
         switch(valor[b]){
                          case '1':strcat(imprimir," dez milhoes ");break;//verifica caso dgito seja um
                         
                }
     }
     else if(valor[b]=='1'){          
         switch(valor[b-1]){//se for zero nao faz nada
                          case '1':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," onze milhoes ");break;//verifica caso dgito seja um
                          case '2':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," doze milhoes ");break;
                          case '3':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," treze milhoes ");break;
                          case '4':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," quatorze milhoes ");break;
                          case '5':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," quinze milhoes ");break;
                          case '6':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," dezesseis milhoes ");break;
                          case '7':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," dezessete milhoes ");break;
                          case '8':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," dezoito milhoes ");break;
                          case '9':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," dezenove milhoes ");break;
                }
         }
         else{ 
                  switch(valor[b]){//se for zero nao faz nada
                          case '2':if(cont>8)strcat(imprimir,"e");strcat(imprimir," vinte ");if((valor[b-1])=='0')strcat(imprimir,"milhoes ");break;//verifica caso dgito seja um
                          case '3':if(cont>8)strcat(imprimir,"e");strcat(imprimir," trinta ");if((valor[b-1])=='0')strcat(imprimir,"milhoes ");break;
                          case '4':if(cont>8)strcat(imprimir,"e");strcat(imprimir," quarenta ");if((valor[b-1])=='0')strcat(imprimir,"milhoes ");break;
                          case '5':if(cont>8)strcat(imprimir,"e");strcat(imprimir," cinquenta ");if((valor[b-1])=='0')strcat(imprimir,"milhoes ");break;
                          case '6':if(cont>8)strcat(imprimir,"e");strcat(imprimir," sessenta ");if((valor[b-1])=='0')strcat(imprimir,"milhoes ");break;
                          case '7':if(cont>8)strcat(imprimir,"e");strcat(imprimir," setenta ");if((valor[b-1])=='0')strcat(imprimir,"milhoes ");break;
                          case '8':if(cont>8)strcat(imprimir,"e");strcat(imprimir," oitenta ");if((valor[b-1])=='0')strcat(imprimir,"milhoes ");break;
                          case '9':if(cont>8)strcat(imprimir,"e");strcat(imprimir," noventa ");if((valor[b-1])=='0')strcat(imprimir,"milhoes ");break;
                  } 
         }
}
void noved(){
         switch(valor[b]){//se for zero nao faz nada
                          case '1':if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir," cem milhoes");else strcat(imprimir," cento ");break;//verifica caso dgito seja um
                          case '2':strcat(imprimir," duzentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"milhoes ");break;
                          case '3':strcat(imprimir," trezentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"milhoes ");break;
                          case '4':strcat(imprimir," quatrocentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"milhoes ");break;
                          case '5':strcat(imprimir," quinhentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"milhoes ");break;
                          case '6':strcat(imprimir," seiscentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"milhoes ");break;
                          case '7':strcat(imprimir," setecentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"milhoes ");break;
                          case '8':strcat(imprimir," oitocentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"milhoes ");break;
                          case '9':strcat(imprimir," novecentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"milhoes ");break;
         }
}         

void inverter(char dados[20]){//funcao inverter string
  char auxc;
  int ac,bc,contc;
  contc=strlen(dados);
  bc=contc;
  for (ac=0;ac<contc/2;ac++){
        bc--;  
      auxc=valor[ac];
      valor[ac]=valor[bc];
      valor[bc]=auxc;
 }
}

          
void tamanhochar(){
    printf("Digite valor:");
    scanf("%s", &valor);
    cont=strlen(valor);
    inverter(valor);
    if(valor[0]=='0'&&cont<=1){
                 strcat(imprimir,"Zero");
                 }
}

int main(){
    tamanhochar();
    int a;
    for(b=cont;b>=0;b--){
      switch (b){
              
              case 0:umd();break;//verifica qual casa decimal esta a correr //;
              case 1:doisd();break;
              case 2:tresd();break;
              case 3:quatrod();break;
              case 4:cincod();break;
              case 5:seisd();break;
              case 6:seted();break;
              case 7:oitod();break;
              case 8:noved();break;
       }
       
    }
    printf("\n\n\%s\n\n", imprimir);
    getchar();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Xinitrc
      Estou fazendo ainda em design uma calculadora de decimo terceiro salário em QT Creator com linguagem C com GTK.
       
      Tem 3 TextEdit
      Tem 3 Labels
      Tem 3 Buttons
       
      Botão Calcular
      Botão Apagar
      Botão Sair
       
      O botão calcular deve calcular da seguinte maneira
       
      TextEdit3=TextEdit1 * TextEdit2/12, que vai dar o decimo terceiro salário,a logica está certa,mas não está funcionando meu programa no QT Creator.
       
      Alguém pode me ajudar?
    • Por JoaoV-26
      olá,
       
      Eu preciso fazer uma matriz 7x7 que imprima caractere 'x' e 'o' porém o x precisar ser nas duas diagonais, fazer a matriz e imprimir o x em uma diagonal eu consegui porém não estou conseguindo de jeito nenhum imprimir na outra diagonal, a matriz precisa sair assim: 
       
      x o o o o o x
      o x o o o x o
      o o x o x o o 
      o o o x o o o
      o o x o x o o
      o x o o o x o
      x o o o o o x
       
      a minha está saindo assim (foto em anexo)
       
      Meu código:

       
      #include<stdio.h> int main(){          int i, j;     char str[2]="x", str1[2]="o";                for(i=1; i<=7; i++){         for(j=1;j<=7; j++)              if(i+j == 7+1){                      printf("%s", str);                      }else                      printf("%s", str1);                      printf("\n");          }      } Alguém pode me ajudar, como faço para outra diagonal sair 'x' também ?????

    • Por llucaahenri
      Bom dia!
      Sou iniciante nessa área de programação, estou aprendendo sobre vetores e matrizes e gostaria de saber como faço para calcular elementos de um vetor e de uma matriz, eu tentei fazer usando laço For, mas não consegui.
      Esse exercício que estou tentando fazer.  
      Leia um vetor de 12 posições e em seguida ler também dois valores X e Y quaisquer correspondentes a duas posições no vetor. Ao final seu programa deverá escrever a soma dos valores encontrados nas respectivas posições X e Y.
      Meu código!
       
      #include <stdio.h> #include <stdlib.h> #include <locale.h> int main() {     setlocale(LC_ALL, "Portuguese");     int VetorX[12], VetorY[12];     int Result, X, Y, i, j;     for(i = 1; i < 13; i++){ // Ler os Valores;         printf("[%d] Digite um número do Vetor X. \n", i);         scanf("%d", &X);     }     for(i = 1; j < 13; j++){ // Ler os Valores;         printf("[%d] Digite um número do Vetor Y. \n", j);         scanf("%d", &Y);     }         for(i = 0; i < 13; i++){             Result =+ VetorX;             printf("O resultado é%d", Result);         }     return 0; }
       
    • Por thisis_paulo
      Olá pessoal, sou iniciante tanto aqui no fórum tanto na linguagem c++.
      Estou tentando resolver o seguinte algoritmo:
       
      Calcule as médias das notas escolares de um aluno (media 1º bimestre, media 2º bimestre, media final) sendo que:
      As notas das provas parciais 1 e 2 equivalem a 30% da nota total do bimestre 1 e 2;
      As notas das provas oficiais 1 e 2 equivalem a 70% da nota total do bimestre 1 e 2;
      A nota total do bimestre 1 equivale a 40% da nota final do semestre;
      A nota total do bimestre 2 equivale a 60% da nota final do semestre;
       
      Utilize structs para armazenar a notas e medias e referencie cada elemento por ponteiros no main.
       
      Segue abaixo, a minha tentativa.
      Não estou conseguindo guardar as notas pedidas no main no vetor de notas dentro da struct, estou usando cin para fazer isso, uma solução mais adequada para realizar este procedimento?
       
      - Biblioteca
      typedef struct notas { float parcial[2], *p1, *p2; float oficial[2], *of1, *of2; float exame, *ex; } NotasProvas; void NotaBim1 (NotasProvas &notas, float *p1, float *of1); void NotaBim2 (NotasProvas &notas, float *p2, float *of2); void NotaExame (NotasProvas &notas, float *ex); typedef struct medias { float mediaB1, mediaB2, *m1, *m2; float notaFinal, *nf; float notaTotal, *nt; } MediasNotas; void MediaBim1 (MediasNotas &medias, float *m1); void MediaBim2 (MediasNotas &medias, float *m2); void MediaFinal (MediasNotas &medias, float *m1, float *m2); void MediaTotal (MediasNotas &medias, float *nf, float *ex);  
      - Procedimentos 
      #include "notas.h" void NotaBim1 (NotasProvas &notas, float *p1, *of1) { *p1 = &NotasProvas.parcial[1]; *of1= &NotasProvas.oficial[1]; MediasNotas.mediaB1 = (p1 * 0.3) + (of1 * 0.7); } void NotaBim2 (NotasProvas &notas, float *p2, *of2) { *p2 = &NotasProvas.parcial[2]; *of2 = &NotasProvas.oficial[2]; MediasNotas.mediaB2 = (p2 * 0.3) + (of2 * 0.7); } void MediaFinal (MediasNotas &medias, float *m1, *m2) { *m1 = &MediasNotas.mediaB1; *m2 = &MediasNotas.mediaB2; MediasNotas.notaFinal = (m1 * 0.4) + (m2 * 0.6); } void MediaTotal (MediasNotas &medias, float *nf, *ex) { *nf = &MediasNotas.notaFinal; *ex = &NotasProvas.exame; MediasNotas.notaTotal = (nf + ex) / 2; } - Função Main
      #include <iostream> #include "notas.h" using namespace std; int main() { cout << "\t\t CALCULANDO NOTAS " << endl; cout << endl; cout << "Qual a sua nota da Prova Parcial 01? " << endl; cin >> NotasProvas.p1; cout << "Qual a sua notas da Prova Oficial 01? " << endl; cin >> NotasProvas.of1; cout << "Nota do 1º bimestre: " << MediasNotas.m1 << endl; cout << "\t\t Segundo Bimestre" << endl; cout << endl; cout << "Qual a sua nota na Prova Parcial 02? " << endl; cin >> NotasProvas.p2; cout << "Qual a sua nota na Prova Oficial 02? " << endl; cin >> NotasProvas.of2; cout << "Nota do 2º bimestre: " << MediasNotas.m2 << endl; cout << "Media Final: " << MediasNotas.nf << endl; system("PAUSE"); return 0; } Desde já, agradeço pelas ajudas!
       
       
       
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.