Ir para conteúdo
Fórum Script Brasil

Aristóteles

Membros
  • Total de itens

    69
  • Registro em

  • Última visita

Posts postados por Aristóteles

  1. #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    
    {
    
    int aux, contador = 9, vetor [20];
    
    for (aux = 10; aux < 20; aux++)
    
        {
    
            printf ("Digite o valor da posição [%d] do vetor: ", aux);
            scanf ("%d", &vetor[aux]);
            vetor [contador] = vetor [aux];
            contador --;
    
        }
    
    for (aux = 0; aux < 20; aux++)
    
            printf ("[%d] == [%d]\n", aux, vetor [aux]);
    
    return 0;
    
    }

     

  2. Para esse propósito, existe a função fgets, existe um ajuste no scanf e a função gets que não é nada bom usar.

    Função fgets:

    *fgets (char *str, int tamanho, FILE *fp)

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    
    {
    
     char string [50];
    
     printf("Digite qualquer coisa com espaços: ");
     fgets(string, 50, stdin);
     
     printf("Imprimindo a string com espaços: %s\n", string);
    
     return 0;
      
    }

    Função gets (não recomendado):

    *gets (char *s)

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    
    {
    
     char string [50];
    
     printf("Digite qualquer coisa com espaços: ");
     gets (string);
     
     printf("Imprimindo a string com espaços: %s\n", string);
    
     return 0;
      
    }

     

    Um ajuste no scanf:

    scanf ("%[^\n]", string_com_espaços);
     

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    
    {
    
     char string [50];
    
     printf("Digite qualquer coisa com espaços: ");
     scanf ("%[^\n]", string);
     
     printf("Imprimindo a string com espaços: %s\n", string);
    
     return 0;
     
    }

     

  3. Seria uma calculadora de juros composto no caso, " M = C (1 + i)^t "

    #include <stdio.h>
    #include <stdlib.h>
    
    void linha (void)
    
    {
    
    printf ("\n");
    
    }
    
    int main()
    
    {
    
    int meses=0, aux=0;
    
    float valor_investido=0, juros=0, total=0, valor_mensal=0, total_investido=0, total_juros=0;
    
    printf ("Informe o capital a ser investido: R$ ");
    scanf ("%f", &valor_investido);
    printf ("Informe a taxa de juros mensal a ser aplicada ao capital: R$ ");
    scanf ("%f", &juros);
    printf ("Informe o número de meses que irá durar a aplicação: ");
    scanf ("%d", &meses);
    printf ("Inserir investimento adicional mês a mês? Digite o valor ou digite 0: R$ ");
    scanf ("%f", &valor_mensal);
    
    total = valor_investido;
    
    for (aux=0;aux<meses;aux++)
    
        {
    
            if (valor_mensal != 0)
    
            total = total + ((total*juros)/100)+valor_mensal;
    
            else
    
            total = total + ((total*juros)/100);
    
        }
    
    total_investido = valor_investido + (valor_mensal * meses);
    
    total_juros = total - (valor_mensal*meses) - valor_investido;
    
    linha ();
    
    printf ("Valor investido: R$ %f \nTotal de juros: R$ %f \nTotal: R$ %f \n",total_investido, total_juros, total);
    
    return 0;
    
    }

     

     

  4. Em 07/02/2022 em 10:33, baetersu disse:

    Até agora, tenho isso, mas sei que está errado. Poderiam me ajudar?

    int multiplo (int num1, int num2)

    {

    int multi;

    if (num1%num2 == 0)

    printf("1");

    if (num1%num2 != 0)

    printf("0");

    return multi;

    }

     

    A ideia da função está boa, mas falta o seu retorno para o programa principal. Afinal, ela tem que retornar 1 ou 0. Eu fiz alguns ajustes para rodar o programa, bons estudos.

     

    #include <stdio.h>
    #include <stdlib.h>
    
     int multiplo (int num1, int num2)
    
    {
    
        int multi;
    
        if (num1%num2 == 0)
    
        multi = 1;
    
        else
    
        multi = 0;
    
        return multi;
    
        }
    
    int main ()
    
    {
    
    int multiplo1, multiplo2, resultado;
    
    printf ("Digite o valor do primeiro número múltiplo ou não do segundo:");
    scanf ("%d", &multiplo1);
    printf ("Digite o segundo número:");
    scanf ("%d", &multiplo2);
    
    resultado = multiplo (multiplo1,multiplo2);
    
    if (resultado == 1)
    
        printf ("%d é múltiplo de %d", multiplo1, multiplo2);
    
    else
    
        printf ("%d não é múltiplo de %d", multiplo1, multiplo2);
    
    
    return 0;
    
    }

     

  5. Tabela ASCII:

     	
    Caracter 	Dec 	Oct 	Hex
    (nul) 	0 	0000 	0x00
    (só) 	1 	0001 	0x01
    (stx) 	2 	0002 	0x02
    (etx) 	3 	0003 	0x03
    (eot) 	4 	0004 	0x04
    (enq) 	5 	0005 	0x05
    (ack) 	6 	0006 	0x06
    (bel) 	7 	0007 	0x07
    (bs) 	8 	0010 	0x08
    (ht) 	9 	0011 	0x09
    (nl) 	10 	0012 	0x0a
    (vt) 	11 	0013 	0x0b
    (np) 	12 	0014 	0x0c
    (cr) 	13 	0015 	0x0d
    (so) 	14 	0016 	0x0e
    (si) 	15 	0017 	0x0f
    (dle) 	16 	0020 	0x10
    (dc1) 	17 	0021 	0x11
    (dc2) 	18 	0022 	0x12
    (dc3) 	19 	0023 	0x13
    (dc4) 	20 	0024 	0x14
    (nak) 	21 	0025 	0x15
    (syn) 	22 	0026 	0x16
    (etb) 	23 	0027 	0x17
    (can) 	24 	0030 	0x18
    (em) 	25 	0031 	0x19
    (sub) 	26 	0032 	0x1a
    (esc) 	27 	0033 	0x1b
    (fs) 	28 	0034 	0x1c
    (gs) 	29 	0035 	0x1d
    (rs) 	30 	0036 	0x1e
    (us) 	31 	0037 	0x1f
    (space) 	32 	0040 	0x20
    ! 	33 	0041 	0x21
    " 	34 	0042 	0x22
    # 	35 	0043 	0x23
    $ 	36 	0044 	0x24
    % 	37 	0045 	0x25
    & 	38 	0046 	0x26
    ' 	39 	0047 	0x27
    ( 	40 	0050 	0x28
    ) 	41 	0051 	0x29
    * 	42 	0052 	0x2a
    + 	43 	0053 	0x2b
    , 	44 	0054 	0x2c
    - 	45 	0055 	0x2d
    . 	46 	0056 	0x2e
    / 	47 	0057 	0x2f
    0 	48 	0060 	0x30
    1 	49 	0061 	0x31
    2 	50 	0062 	0x32
    3 	51 	0063 	0x33
    4 	52 	0064 	0x34
    5 	53 	0065 	0x35
    6 	54 	0066 	0x36
    7 	55 	0067 	0x37
    8 	56 	0070 	0x38
    9 	57 	0071 	0x39
    : 	58 	0072 	0x3a
    ; 	59 	0073 	0x3b
    < 	60 	0074 	0x3c
    = 	61 	0075 	0x3d
    > 	62 	0076 	0x3e
    ? 	63 	0077 	0x3f
    @ 	64 	0100 	0x40
    A 	65 	0101 	0x41
    B 	66 	0102 	0x42
    C 	67 	0103 	0x43
    D 	68 	0104 	0x44
    E 	69 	0105 	0x45
    F 	70 	0106 	0x46
    G 	71 	0107 	0x47
    H 	72 	0110 	0x48
    I 	73 	0111 	0x49
    J 	74 	0112 	0x4a
    K 	75 	0113 	0x4b
    L 	76 	0114 	0x4c
    M 	77 	0115 	0x4d
    N 	78 	0116 	0x4e
    O 	79 	0117 	0x4f
    P 	80 	0120 	0x50
    Q 	81 	0121 	0x51
    R 	82 	0122 	0x52
    S 	83 	0123 	0x53
    T 	84 	0124 	0x54
    U 	85 	0125 	0x55
    V 	86 	0126 	0x56
    W 	87 	0127 	0x57
    X 	88 	0130 	0x58
    Y 	89 	0131 	0x59
    Z 	90 	0132 	0x5a
    [ 	91 	0133 	0x5b
    \ 	92 	0134 	0x5c
    ] 	93 	0135 	0x5d
    ^ 	94 	0136 	0x5e
    _ 	95 	0137 	0x5f
    ` 	96 	0140 	0x60
    a 	97 	0141 	0x61
    b 	98 	0142 	0x62
    c 	99 	0143 	0x63
    d 	100 	0144 	0x64
    e 	101 	0145 	0x65
    f 	102 	0146 	0x66
    g 	103 	0147 	0x67
    h 	104 	0150 	0x68
    i 	105 	0151 	0x69
    j 	106 	0152 	0x6a
    k 	107 	0153 	0x6b
    l 	108 	0154 	0x6c
    m 	109 	0155 	0x6d
    n 	110 	0156 	0x6e
    o 	111 	0157 	0x6f
    p 	112 	0160 	0x70
    q 	113 	0161 	0x71
    r 	114 	0162 	0x72
    s 	115 	0163 	0x73
    t 	116 	0164 	0x74
    u 	117 	0165 	0x75
    v 	118 	0166 	0x76
    w 	119 	0167 	0x77
    x 	120 	0170 	0x78
    y 	121 	0171 	0x79
    z 	122 	0172 	0x7a
    { 	123 	0173 	0x7b
    | 	124 	0174 	0x7c
    } 	125 	0175 	0x7d
    ~ 	126 	0176 	0x7e
    (del) 	127 	0177 	0x7f
    Ç 	128 	0200 	0x80
    ü 	129 	0201 	0x81
    é 	130 	0202 	0x82
    â 	131 	0203 	0x83
    ä 	132 	0204 	0x84
    à 	133 	0205 	0x85
    å 	134 	0206 	0x86
    ç 	135 	0207 	0x87
    ê 	136 	0210 	0x88
    ë 	137 	0211 	0x89
    è 	138 	0212 	0x8a
    ï 	139 	0213 	0x8b
    î 	140 	0214 	0x8c
    ì 	141 	0215 	0x8d
    Ä 	142 	0216 	0x8e
    Å 	143 	0217 	0x8f
    É 	144 	0220 	0x90
    æ 	145 	0221 	0x91
    Æ 	146 	0222 	0x92
    ô 	147 	0223 	0x93
    ö 	148 	0224 	0x94
    ò 	149 	0225 	0x95
    û 	150 	0226 	0x96
    ù 	151 	0227 	0x97
    ÿ 	152 	0230 	0x98
    Ö 	153 	0231 	0x99
    Ü 	154 	0232 	0x9a
    ø 	155 	0233 	0x9b
    £ 	156 	0234 	0x9c
    Ø 	157 	0235 	0x9d
    × 	1158 	0236 	0x9e
    ƒ 	159 	0237 	0x9f
    á 	160 	0240 	0xa0
    í 	161 	0241 	0xa1
    ó 	162 	0242 	0xa2
    ú 	163 	0243 	0xa3
    não 	164 	0244 	0xa4
    não 	165 	0245 	0xa5
    ª 	166 	0246 	0xa6
    º 	167 	0247 	0xa7
    ¿ 	168 	0250 	0xa8
    ® 	169 	0251 	0xa9
    ¬ 	170 	0252 	0xaa
    ½ 	171 	0253 	0xab
    ¼ 	172 	0254 	0xac
    ¡ 	173 	0255 	0xad
    « 	174 	0256 	0xae
    » 	175 	0257 	0xaf
    _ 	176 	0260 	0xb0
    _ 	177 	0261 	0xb1
    _ 	178 	0262 	0xb2
    ¦ 	179 	0263 	0xb3
    ¦ 	180 	0264 	0xb4
    Á 	181 	0265 	0xb5
    Â 	192 	0266 	0xb6
    À 	183 	0267 	0xb7
    © 	184 	0270 	0xb8
    ¦ 	185 	0271 	0xb9
    ¦ 	186 	0272 	0xba
    + 	187 	0273 	0xbb
    + 	188 	0274 	0xbc
    ¢ 	189 	0275 	0xbd
    ¥ 	190 	0276 	0xbe
    + 	191 	0277 	0xbf
    + 	192 	0300 	0xc0
    - 	193 	0301 	0xc1
    - 	194 	0302 	0xc2
    + 	195 	0303 	0xc3
    - 	196 	0304 	0xc4
    + 	197 	0305 	0xc5
    ã 	198 	0306 	0xc6
    Ã 	199 	0307 	0xc7
    + 	200 	0310 	0xc8
    + 	201 	0311 	0xc9
    - 	202 	0312 	0xca
    - 	203 	0313 	0xcb
    ¦ 	204 	0314 	0xcc
    - 	205 	0315 	0xcd
    + 	206 	0316 	0xce
    ¤ 	207 	0317 	0xcf
    ð 	208 	0320 	0xd0
    Ð 	209 	0321 	0xd1
    Ê 	210 	0322 	0xd2
    Ë 	211 	0323 	0xd3
    È 	212 	0324 	0xd4
    i 	213 	0325 	0xd5
    Í 	214 	0326 	0xd6
    Î 	215 	0327 	0xd7
    Ï 	216 	0330 	0xd8
    + 	217 	0331 	0xd9
    + 	218 	0332 	0xda
    _ 	219 	0333 	0xdb
    _ 	220 	0334 	0xdc
    ¦ 	221 	0335 	0xdd
    Ì 	222 	0336 	0xde
    _ 	223 	0337 	0xdf
    Ó 	224 	0340 	0xe0
    ß 	225 	0341 	0xe1
    Ô 	226 	0342 	0xe2
    Ò 	227 	0343 	0xe3
    Õ 	228 	0344 	0xe4
    Õ 	229 	0345 	0xe5
    µ 	230 	0346 	0xe6
    Þ 	231 	0347 	0xe7
    Þ 	232 	0350 	0xe8
    Ú 	233 	0351 	0xe9
    Û 	234 	0352 	0xea
    Ù 	235 	0353 	0xeb
    ý 	236 	0354 	0xec
    Ý 	237 	0355 	0xed
    ¯ 	238 	0356 	0xee
    ´ 	239 	0357 	0xef
      	240 	0360 	0xf0
    ± 	241 	0361 	0xf1
    _ 	242 	0362 	0xf2
    ¾ 	243 	0363 	0xf3
    ¶ 	244 	0364 	0xf4
    § 	245 	0365 	0xf5
    ÷ 	24 	0366 	0xf6
    ¸ 	247 	0367 	0xf7
    ° 	248 	0370 	0xf8
    ¨ 	249 	0371 	0xf9
    · 	250 	0372 	0xfa
    ¹ 	251 	0373 	0xfb
    ³ 	252 	0374 	0xfc
    ² 	253 	0375 	0xfd
    _ 	254 	0376 	0xfe
      	255 	0377 	0xff

    Ler um número inteiro e imprimir o caractere correspondente na tabela ASCII em linguagem C:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    
    {
        int codigo_ASCII;
        printf("Digite um número para converter em caractere da tabela ASCII:");
        scanf("%d", &codigo_ASCII);
        printf ("%d = %c", codigo_ASCII, codigo_ASCII);
        return 0;
    }

    Do mesmo modo com um comando de repetição pode-se imprimir toda a tabela ASCII, mas existem os caracteres que não são imprimíveis:

  6. #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    
    {
    
     int prova [31] = {345678,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1};
    
     int gabarito [30] = {1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4};
    
     int acertos = 0;
    
     int aux = 0;
    
     for (aux=0; aux<30; aux++)
    
        {
    
            if (prova [aux+1] == gabarito [aux])
    
                {
    
                    acertos++;
    
                    printf ("[Questão %d] %d == %d Acertou !!\n", aux+1, prova [aux+1], gabarito [aux]);
    
                }
    
    
            else
    
                printf ("[Questão %d] %d != %d Errou\n", aux+1, prova [aux+1], gabarito [aux]);
    
        }
    
    
    printf ("\nO aluno %d acertou %d respostas na prova.\n", prova [0], acertos);
    
    return 0;
    
    }

     

  7. #include <stdbool.h>
    #include <stdio.h>
    #include <time.h>
    #include <unistd.h>
    #include <string.h>
    
    int main (void)
    
    {
    
    char loop [] = "0 1 1 0 0";
    
    bool l = true;
    
    int i = 0;
    
    while (l==true)
    
        {
    
    
            for (i=0; i < strlen (loop); i++)
    
                    {
    
                    printf ("%c   ", loop[i]);
    
                    usleep (17000);
    
    
                    }
    
    
               if (i == strlen (loop))
    
               i = 0;
    
        }
    
    return 0;
    
    }
    
    

    Com a biblioteca unistd.h pode pausar o programa com sleep ou usleep, nas funções envolvendo tempo da biblioteca time.h existe mais conteúdo para utilizar também.

  8. Uma boa resposta do vandodp. Mas para ler string com espaço pode se usar o gets (menos seguro) fgets (que lê também \n com enter e tudo para a variável) ou scanf ("%[^n]". Nesse caso não tem problema. Como o vandodp também disse, o número do array deve ser inclusivo com a necessidade do programa, pode criar também uma função para definir o tamanho...

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

    Lê todo o texto até o enter e salva na string.

  9. #include <stdio.h>
    #include <stdlib.h>
    #include <stdbool.h>
    
    void linha (void)
    
    {
    
    printf ("\n");
    
    }
    
    int main()
    
    {
    
    const float etanol = 4.529;
    const float gasolina = 5.847;
    const int quantidade = 40;
    float valor = 0;
    int aux=0;
    bool aux2 = true;
    int aux3 = 0;
    
    while (aux3 != 4)
    
        {
    
         do
        {
    
        if (aux2 == false)
    
        printf ("Dígito inválido! Etanol ou Gasolina?\n");
    
        printf ("::POSTO ÁGUA NO TANQUE:: \n Etanol R$ 4,529\n Gasolina R$ 5,847\n Digite 1 para Etanol e 2 para Gasolina: ");
        scanf ("%d", &aux);
    
        linha ();
    
        aux2 = false;
    
        } while (aux != 1 && aux != 2);
    
        aux2 = true;
    
        do {
    
            if (valor > 40 && aux2 == false)
    
            printf ("!O valor máximo R$ 40.00!\n");
    
            if (valor < 0.1 && aux2 == false)
    
            printf ("!O valor deve ser positivo!\n");
    
            printf ("Digite qual o valor deseja que deseja abastecer, o máximo é R$ 40.00: ");
            scanf ("%f", &valor);
            linha ();
    
            aux2=false;
    
    
            } while (valor > 40 || valor < 0.1);
    
        if (aux == 1)
    
            printf (" * Informações do abastecimento: [R$ %f] [%f litros de Etanol] * \n", valor, valor / etanol);
    
    
        if (aux == 2)
    
            printf (" * Informações do abastecimento: [R$ %f] [%f litros de Gasolina] * \n", valor, valor / gasolina);
    
            linha ();
    
    
        printf ("::POSTO ÁGUA NO TANQUE::\nObrigado pela preferência\nDigite 4 para sair ou outro número para voltar ao menu anterior: ");
    
            scanf ("%d", &aux3);
    
            aux2=true;
    
            linha ();
        }
    
    
        printf ("* Boa viagem * ");
    
    
    
    return 0;
    }

     

  10. #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void linha (void)
    
    {
    
    printf ("\n");
    
    }
    
    struct masculino {
        char nome[20];
        int idade;
        char genero [20];
    };
    
    struct feminino {
        char nome[20];
        int idade;
        char genero [20];
    };
    
    int main () {
    
        int valid = 0;
        int escolha;
        int i;
    
        char fem [20] = "Feminino";
        char masc [20] = "Masculino";
    
    struct masculino homem [10];
    struct feminino mulher [10];
    
    for (i = 0; i < 10; ++i){
    
        escolha = 0;
    
        do {
    
            printf("%dº - Digite 1 para adicionar uma mulher ou 2 para um homem: ", i+1);
            scanf("%d", &escolha);
            __fpurge (stdin);
    
           } while (escolha != 1 && escolha != 2);
    
            if (escolha == 2){
                printf("Digite o nome do homem: ");
                scanf ("%[^\n]", homem[i].nome);
                 __fpurge (stdin);
                strcpy (homem[i].genero, masc);
                printf("Digite a idade: ");
                scanf ("%d", &homem[i].idade);
                 __fpurge (stdin);
    
                    }
    
            if (escolha == 1){
            printf("Digite o nome da mulher: ");
            scanf ("%[^\n]", mulher[i].nome);
             __fpurge (stdin);
            strcpy (mulher[i].genero, fem);
            printf("Digite a idade: ");
            scanf ("%d", &mulher[i].idade);
             __fpurge (stdin);
    
                }
    
            }
    
    linha ();
    
    for (i = 0; i < 10; ++i)
    
        {
    
            if (homem[i].idade >= 20 && homem[i].idade <= 40)
    
                {
    
                printf ("Nome: %s, idade: %d, gênero: %s ", homem[i].nome, homem[i].idade, homem[i].genero);
    
    
                linha();
    
                if (valid == 0)
    
                valid ++;
    
                }
    
    
            if (mulher[i].idade >= 20 && mulher[i].idade<= 40)
    
                {
    
    
                printf ("Nome: %s, idade: %d, gênero: %s ", mulher[i].nome, mulher[i].idade, mulher[i].genero);
    
                linha();
    
                if (valid == 0)
                valid ++;
    
                }
    
        }
    
        if (valid == 0)
    
            printf ("Nenhum homem ou mulher tem idade entre 20 e 40");
    
     return EXIT_SUCCESS;
    
     }
    
    

     

  11.  Na Struct é preciso informar o tamanho do vetor "nome [x]", e com fgets, gets ou scanf ( "%[^\n]" é possível ler os espaços até o enter, evitando a necessidade de outro vetor.

    Da uma olhada no código abaixo, só fiz alguns ajustes. 🤙

     

    #include <stdio.h>
    #include <stdlib.h>
    
    void linha (void)
    
    {
    
    printf ("\n");
    
    };
    
    struct nome
    {
    char nomecompleto [40];
    };
    
    struct boletim{
    int nota;
    };
    
    
    int main ()
    
    {
    
    int i, quantidade;
    
    printf ("Quantidade de alunos: ");
    scanf ("%d", &quantidade);
    
    __fpurge(stdin);
    
    struct nome aluno [quantidade];
    struct boletim notas [quantidade];
    
    for (i = 0; i < quantidade; ++i)
    
    {
    
    	printf("Digite o nome completo do Aluno: ");
        scanf ( "%[^\n]", aluno[i].nomecompleto);
    
        __fpurge(stdin);
    
        printf("Digite a nota do Aluno %s: ", aluno[i].nomecompleto);
    	scanf ("%d", &notas[i].nota);
    
    	__fpurge(stdin);
    
    	linha();
    
    }
    
    for (i = 0; i < quantidade; ++i)
    
    {
    
    	if (notas[i].nota >= 5)
    
    	{
    
    	printf ("O Aluno %s foi aprovado com nota %d", aluno[i].nomecompleto, notas[i].nota);
    	linha ();
    
        }
    
    }
    	return EXIT_SUCCESS;
    
    }

     

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

     struct funcionarios

        {

            char nome [30];
            char inscricao [30];
            char cargo [30];
            char codigo [30];
            float entrada;
            float saida;
            float horas;

        };

    int main ()

    {

     int quantidade;

     setbuf (stdin, NULL);
     printf ("Digite a quantidade de funcionários: ");
     scanf ("%d", &quantidade);

     setbuf (stdin, NULL);

     struct funcionarios LTDA [quantidade];

     int cont=0, dia = 1, semana = 5;

      for (cont=0;cont<quantidade;cont++)

            LTDA[cont].horas = 0;

        do

            {

                for (cont=0;cont<quantidade;cont++)


                {


                printf ("Dia %d Registro de ponto: \n", dia);

                printf ("Nome: ");
                fgets  (LTDA [cont].nome, 30, stdin);

                printf ("Inscrição: ");
                fgets  (LTDA [cont].inscricao, 30, stdin);

                printf ("Cargo: ");
                fgets  (LTDA [cont].cargo, 30, stdin);

                printf ("Código: ");
                fgets  (LTDA [cont].codigo, 30, stdin);

                printf ("Usar Ponto para separar - Horário de Entrada: ");
                scanf  ("%f", & LTDA[cont].entrada);


                printf ("Usar Ponto para separar - Horário de Saída: ");
                scanf  ("%f", & LTDA[cont].saida);

                setbuf (stdin, NULL);

                if (LTDA[cont].saida - LTDA[cont].entrada < 0)

                    LTDA[cont].horas = LTDA[cont].horas + ((LTDA[cont].saida - LTDA[cont].entrada) * - 1);

                else

                    LTDA[cont].horas = LTDA[cont].horas + (LTDA[cont].saida - LTDA[cont].entrada);

                    }


                dia++;

            } while (dia <= semana);

             printf ("****____________________________________________________________________________****\n");

                for (cont=0;cont<quantidade;cont++)

                    {


                    fputs  (LTDA [cont].nome, stdout);

                    fputs  (LTDA [cont].inscricao, stdout);

                    fputs  (LTDA [cont].cargo, stdout);

                    fputs  (LTDA [cont].codigo, stdout);

                    printf ("%f Horas, %f minutos \n", LTDA[cont].horas, LTDA[cont].horas / 60);


                    }


    return EXIT_SUCCESS;


    }

     

  13. Fazendo um jogo de vetores simplifica bastante.

     

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

    int main()

    {

    int aux = 0, aux2 = 0, notas [7] = {NULL}, notas_aux [7] = {NULL};

    printf ("Digite a seguir 7 números (notas)\n");

     for (aux=0;aux<7;aux++)

        {

        printf ("Digite %d: ", aux+1);
        scanf ("%d", &notas [aux]);
        notas_aux [aux] = 1;

        }

    aux = 0;

     while (aux<7)

        {

            for (aux2=aux+1;aux2<7;aux2++)

                {

                if (notas [aux] == notas [aux2] && notas_aux [aux] != 0)

                 {

                   notas_aux [aux] ++;
                   notas_aux [aux2] = 0;


                 }


                }
     aux++;

        }


        for (aux=0;aux<7;aux++)

            if (notas_aux [aux] > 0)

            printf ("A nota: %d aparece %d vez(es)\n", notas [aux], notas_aux [aux]);

     return EXIT_SUCCESS;

    }

     

  14. #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    void rodarroleta()
    
    {
    
    printf ("\nPara girar a roleta, pressione ENTER\n");
    
    while (getchar () != '\n');
    
    }
    
    int main()
    
    {
    
    srand (time(NULL));
    
    int numero=1;
    
    rodarroleta();
    
    do
    
    {
    
    if (numero%2==0)
    
    {
    
        printf ("\nVocê acertou um número par, tem direito a uma nova jogada... \n");
    
        rodarroleta();
    
    }
    
    numero = 1 + rand () % 35;
    
    if (numero==7)
        printf ("\nVOCÊ GANHOU O MAIOR PRÊMIO!, acertou o número %d\n", numero);
    
    else
        printf ("Você tirou o número %d\n", numero);
    
    }while (numero%2==0);
    
    printf ("\n\nFIM\n\n");
    
    return 0;
    
    }

     

  15. #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<locale.h>
    
    const int TAM_TEXTO = 100;
    const int TAM_PALAVRA = 50;
    
    int conta_ocorrencia_palavra(char texto[], int TAM, char palavra[], int TAM2)
    
    {
    
    printf ("\n\n%d\n\n", TAM);
    
    int igual = 0, i=0, j=0;
    
    char aux [TAM_PALAVRA];
    
    strcpy (aux, "");
    
    for (i=0; i<TAM+1; i++)
    
        {
    
        if (texto[i]==' ' || texto[i]=='\0')
    
            {
    
                if (strcmp (aux, palavra)==0)
                igual++;
    
            strcpy(aux, "");
            j=0;
            }
    
        else
    
            {
    
            aux[j]=texto[i];
    
            j++;
    
    
            }
    
    
        }
    
    printf ("\n%d\n", igual);
    
    return 0;
    }
    
    int main(){
    	//setlocale(LC_ALL,"Portuguese");
    
    	char texto[TAM_TEXTO],palavra[TAM_PALAVRA];
    
    	printf ("\nTEXTO:");
    	scanf("%[^\n]s",texto);
    
    	printf ("\n%s\n", texto);
    
    	printf ("\nPALAVRA:");
    	scanf("%s",palavra);
    
    	conta_ocorrencia_palavra(texto, strlen(texto), palavra, strlen(palavra));
    
    	//system ("pause");
    return 0;
    }

    Você precisa passar aonde a string acaba,  é um array de caracteres e está na função main. E no for principal, que trabalha caractere por caractere da string texto, é preciso somar+1 no TAM ou colocar  i<=TAM ,  pois o final do texto não é ' ' e sim '\0', isso serve para que a ultima palavra da string também tenha efeito na função.

  16. O raciocínio está correto, basta utilizar mais uma variável para fazer o backup da média. Veja só:

     #include <stdio.h>
     #include <stdlib.h>
    
     int main ()
    
     {
    
     float altura, media=0, backup_media=0;
    
     int idade=10, cont=0;
    
        while (idade > 0)
    
        {
            printf ("DIGITE A IDADE:");
            scanf ("%d", &idade);
    
            printf ("DIGITE A ALTURA:");
            scanf ("%f", &altura);
    
            printf ("\n");
    
            if (idade >50)
    
            {
    
            cont++;
    
                backup_media+=altura;
                media=backup_media;
                media/=cont;
    
    
    
            }
    
         printf ("A media de altura das pessoas com mais de 50 anos é: %f\n\n", media);
    
        }
    
    return 0;
    }

    Se o cálculo for feito apenas somando

     

    media = media + altura; 

    media / cont;

     

    O valor bruto da média aritmética é perdido a cada operação. Por isso o uso de uma variável de backup:

     

    backup_media+=altura;
    media=backup_media;
    media/=cont;

     

    backup_media sempre mantém o valor bruto da soma de todas as alturas, e a variável média recebe apenas a média aritmética desse valor bruto fazendo a divisão de acordo com a contagem da variavel cont.

     

    Até.
     

  17. 2 horas atrás, rafaelarbl disse:

     

    Se puder ajudar: ele só começou a dar esse problema dos números randômicos quando eu usei mutex para proteger a seção crítica.

    A partir daí ele não varia mais os randômicos. Antes variava normalmente.

     

    Pode ser aí o problema. :)

  18. 9 horas atrás, rafaelarbl disse:

    Problemas deste código:
    Primeiro. Ele gera um primeiro número randômico e nunca mais. Eu queria um número randômico para cada execução. :

     

    Para isso, inclua a biblioteca time.h, e coloque srand (time(NULL)), de preferência logo no inicio da função main.

    Exemplo:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
      
    int main ()
      
    {
      
    srand (time(NULL));
      
    int a;
      
    a = 1 + rand () % 100;
      
    printf ("\n%d\n", a);
    
    return 0;
      
    }

     

    9 horas atrás, rafaelarbl disse:

    Segundo. Ele atribui valores de temperatura na coluna dos valores de saturação de oxigênio, e valores de saturação de oxigênio na coluna da temperatura. Sendo que eu nunca disse para ele fazer isso no código! Eu não sei por que ele faz isso! (...)

    Repare no tamanho que você define sua matriz: 

    int matriz[100][2];

    Lembre-se, vetores iniciam no zero e vão até o tamanho -1. Nesse caso, de 0 a 99 linhas, e 0 a 1 colunas.

    O provável erro está nessa parte:

    int a = ;
    	for (a = ; a<101; a++) {
    		matriz[a][] = 10;
    		matriz[a][1] = 100;
    		matriz[a][2] = 100;
    	}

    Você está usando a sua matriz como se fosse de 0 a 100 linhas e não 0 a 99, pois <<a>> é incrementado de 0 até 100 e está usando 0 a 2 colunas.

    Para resolver isso é simples. Se você quiser uma matriz que vai de 0 a 100 linhas, e 0 a 2 colunas:

    int matriz [101][3].

    se quer de 0 a 99 linhas e 0 a 2 colunas:

    int matriz [100][3].

    Feita essa correção, ajuste esse for e o seu programa estará redondinho.

     

     

  19. #include <iostream>
    #include <stdbool.h>
    
    using namespace std;
    
    int main()
    
    {
    
    cout << "Determinar o maior múltiplo de um inteiro dado menor do que ou igual a um outro inteiro dado.\n" << endl;
    
    bool ExisteMult=false;
    
    int i, M, N, backup, j;
    
        cout << "Digite um valor:"<< endl;
        cin >> M;
    
        cout << "Digite outro valor:"<< endl;
    	cin >> N;
    
    if (M>N)
    
    {
    
    backup=N;
    
    N=M;
    
    M=backup;
    
    
    }
    
    cout << "\nEntrada:\n\n" << M << "\n\n" << N;
    
    cout << endl;
    
    
    for (i=M; i<=N; i++)
    
        {
    
            if ((M*i) <= N)
    
                {
    
                ExisteMult=true;
    
    
                j=(M*i);
    
                }
    
        }
    
    if (ExisteMult==false)
    
    cout << "\nNenhum multiplo existe nas condicoes de entrada definidas" << endl;
    
    else
    
    cout << "\nO maior multiplo entre " << M << " e " << N << ": " << j << endl;
    
    return 0;
    
    }

     

×
×
  • Criar Novo...