Ir ao conteúdo
  • Cadastre-se

Daniel Pio

Membro Júnior
  • Posts

    16
  • Cadastrado em

  • Última visita

posts postados por Daniel Pio

  1. #include <stdio.h>
    #include <stdlib.h>
    #include <locale.h>
    void calc_soma(int *mat_A, int *mat_B, int *mat_C)
    {
    	int i = 0;
    	int j = 0;
    
    	for (i = 0; i < 4; i++) {
    		for (j = 0; j < 4; j++) {
    			mat_C[i][j] = mat_A[i][j] + mat_B[i][j];
    		}
    	}
    
    	printf("Matriz C:\n");
    
    	for (i = 0; i < 4; i++) {
    		for (j = 0; j < 4; j++) 
    		{
    			printf("\%i", *mat_C[i][j]);
    		}
    		printf("\n");
    	}
    
    }
    
    int main()
    {
    
    setlocale(LC_ALL, "pt_BR.UTF-8");
    int mat_A[4][4];
    int mat_B[4][4];
    int mat_C[4][4];
    int i = 0;
    int j = 0;
    
    for (i = 0; i < 4; i++) 
    {
    	for (j = 0; j < 4; j++) 
    	{
    		printf("Digite o valor referente a posição linha %i e coluna %i da matriz A: ", i, j);
    		scanf_s("%d", &mat_A[i][j]);
    		if (mat_A[i][j] < 0) 
    		{
    			printf("\nEncerrando programa.\n");
    			exit(0);
    		}
    	}
    	printf("\n");
    }
    
    
    for (i = 0; i < 4; i++)
    {
    	for (j = 0; j < 4; j++)
    	{
    		printf("Digite o valor referente a posição linha %i e coluna %i da matriz B: ", i, j);
    		scanf_s("%d", &mat_B[i][j]);
    		if (mat_B[i][j] < 0)
    		{
    			printf("\nEncerrando programa.\n");
    			exit(0);
    		}
    	}
    	printf("\n");
    }
    
    
    system("pause");
    return 0;
    }

    Estou tendo dificuldade para encontrar a solução desse meu problema. Sempre que tento compilar esse code tenho esse retorno do Visual studio: A expressão deve conter tipo ponteiro para objeto. Desde já obrigado.

  2. 20 minutos atrás, arfneto disse:
    
    char ch = ' ';
    	int count_t = 0;
    	for (i = 0; i < m; i++) {
    		for (j = 0; j < m; j++) {
    			printf("\nPreencha %i x %i com algum caractere", (i + l), (j + l));
    			fgets(ch, 10, stdin);
    			matriz[i][j] = ch;

     

    Como eu disse, computadores são muito monótonos e repetitivos. Enquanto você insistir em escrever errado vai dar erro. Está lendo mesmo o que eu te explico? Isso antes estava mais certo. Porque mudou? Não escreva uma única linda de programa sem razão.

     

    Vou te mostrar o mesmo desenho

     

    image.png.aa6ada7920e559ee96bb0029311286d6.png

     

    O Visual Studio te mostra na tela a declaração. Também te mostrei esse desenho. Não é possível você insistir.

     

    Leu a parte em que eu te falei sobre fflush() ser para fluxos de saída? Porque está ainda no programa?

     

    Porque continua achando que pode ler algo em cima de uma constante?

     

    Porque ainda acha que pode ler DEZ bytes em um único char? E está então duas vezes errado?

     

    Porque não faz o óbvio e lê direto na matriz?

     

     

    Não estou entendendo o desenho..

    Estou errando na parte do fgets?

    
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<stdbool.h>
    #include<locale.h>
    #include<ctype.h>
    
    
    int primeiroch(char ch) {
    	if (islower(ch)) {
    		printf("\nMinusculo %i X 2\n", ch);
    		return ch * 2;
    	}
    	else if (isupper(ch)) {
    		printf("\nMaiusculo %i / 10\n", ch);
    		return ch / 10;
    	}
    	else {
    		printf("\não é uma letro %i X 2\n", ch);
    		return ch * 2;
    	}
    }
    int main()
    {
    	setlocale(LC_ALL, "");
    	int m = 0;
    	int n = 0;
    	while (!(m >= 1 && m <= 10)) {
    		system("cls");
    		printf("Entre com o valor de M para criar a matriz: ");
    		scanf_s("%i", &m);
    		
    	}
    	while (!(n >= 1 && n <= 10)) {
    		system("cls");
    		printf("Entre com o valor de N para criar a matriz: ");
    		scanf_s("%i", &n);
    		
    	}
    	printf("Matriz criada M x N = %i x %i\n", m, n);
    
    	char matriz[10][10];
    	char con[100];
    	int i = 0;
    	int j = 0;
    	int l = 0;
    	int con1 = 0;
    	char ch = ' ';
    	int count_t = 0;
    	for (i = 0; i < m; i++) {
    		for (j = 0; j < m; j++) {
    			printf("\nPreencha %i x %i com algum caractere", (i + l), (j + l));
    			fgets(matriz[i][j], 1, stdin);
    			con[con1] = ch;
    			con1++;
    			
    		}
    		printf("\n");
    	}
    	printf("\n\n");
    	char con2[100];
    	strcpy_s(con2, 1, NULL);
    	for (l = 0; l < con2; l++) {
    		bool ver = false;
    		int conch = 0;
    		char chv[2];
    		chv[0] = con[1];
    		chv[0] = tolower(chv[0]);
    		for (i = 0; i < m; i++) {
    			for (j = 0; j < m; j++) {
    				if (chv[0] == tolower(matriz[i][j]) && ((strchr(con2, chv[0])) == NULL)) {
    					conch++;
    					ver = true;
    				}
    			}
    		}
    		strcat_s(con2, 1, chv);
    		if (ver) {
    			printf("%c foi encontrado %i na matriz\n", chv[0], conch);
    		}
    	}
    	printf("\N O total de caracteres da matriz é %i\n", con1);
    	int re = primeiroch(matriz[0][0]);
    	printf("\nResultado: %i %c \n", re, re);
    	system("pause");
    	return 0;
    }

     

    adicionado 22 minutos depois

    @Lucca Rodrigues

    Não consigo ver onde estou errando..

    pode me ajudar?

    
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<stdbool.h>
    #include<locale.h>
    #include<ctype.h>
    
    
    int primeiroch(char ch) {
    	if (islower(ch)) {
    		printf("\nMinusculo %i X 2\n", ch);
    		return ch * 2;
    	}
    	else if (isupper(ch)) {
    		printf("\nMaiusculo %i / 10\n", ch);
    		return ch / 10;
    	}
    	else {
    		printf("\não é uma letro %i X 2\n", ch);
    		return ch * 2;
    	}
    }
    int main()
    {
    	setlocale(LC_ALL, "");
    	int m = 0;
    	int n = 0;
    	while (!(m >= 1 && m <= 10)) {
    		system("cls");
    		printf("Entre com o valor de M para criar a matriz: ");
    		scanf_s("%i", &m);
    		
    	}
    	while (!(n >= 1 && n <= 10)) {
    		system("cls");
    		printf("Entre com o valor de N para criar a matriz: ");
    		scanf_s("%i", &n);
    		
    	}
    	printf("Matriz criada M x N = %i x %i\n", m, n);
    
    	char matriz[10][10];
    	char con[10];
    	int i = 0;
    	int j = 0;
    	int l = 0;
    	int con1 = 0;
    	char ch = ' ';
    	int count_t = 0;
    	for (i = 0; i < m; i++) {
    		for (j = 0; j < m; j++) {
    			printf("\nPreencha %i x %i com algum caractere: ", (i + l), (j + l));
    			gets(ch);
    			matriz[i][j] = ch;
    			con[con1] = ch;
    			con1++;
    			
    		}
    		printf("\n");
    	}
    	printf("\n\n");
    	char con2[100];
    	strcpy_s(con2, 2, NULL);
    	for (l = 0; l < con2; l++) {
    		bool ver = false;
    		int conch = 0;
    		char chv[2];
    		chv[0] = con[1];
    		chv[0] = tolower(chv[0]);
    		for (i = 0; i < m; i++) {
    			for (j = 0; j < m; j++) {
    				if (chv[0] == tolower(matriz[i][j]) && ((strchr(con2, chv[0])) == NULL)) {
    					conch++;
    					ver = true;
    				}
    			}
    		}
    		strcat_s(con2, 2, chv);
    		if (ver) {
    			printf("%c foi encontrado %i na matriz\n", chv[0], conch);
    		}
    	}
    	printf("\N O total de caracteres da matriz é %i\n", con1);
    	int re = primeiroch(matriz[0][0]);
    	printf("\nResultado: %i %c \n", re, re);
    	system("pause");
    	return 0;
    }

     

  3. @arfneto

    Me ajude!! 

    Erro de novo.

    
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<stdbool.h>
    #include<locale.h>
    #include<ctype.h>
    
    
    int primeiroch(char ch) {
    	if (islower(ch)) {
    		printf("\nMinusculo %i X 2\n", ch);
    		return ch * 2;
    	}
    	else if (isupper(ch)) {
    		printf("\nMaiusculo %i / 10\n", ch);
    		return ch / 10;
    	}
    	else {
    		printf("\não é uma letro %i X 2\n", ch);
    		return ch * 2;
    	}
    }
    int main()
    {
    	setlocale(LC_ALL, "");
    	int m = 0;
    	int n = 0;
    	while (!(m >= 1 && m <= 10)) {
    		system("cls");
    		printf("Entre com o valor de M para criar a matriz: ");
    		scanf_s("%i", &m);
    		fflush(stdin);
    	}
    	while (!(n >= 1 && n <= 10)) {
    		system("cls");
    		printf("Entre com o valor de N para criar a matriz: ");
    		scanf_s("%i", &n);
    		fflush(stdin);
    	}
    	printf("Matriz criada M x N = %i x %i\n", m, n);
    
    	char matriz[10][10];
    	char contar[100];
    	int i = 0;
    	int j = 0;
    	int l = 0;
    	char ch = ' ';
    	int count_t = 0;
    	for (i = 0; i < m; i++) {
    		for (j = 0; j < m; j++) {
    			printf("\nPreencha %i x %i com algum caractere", (i + l), (j + l));
    			fgets(ch, 10, stdin);
    			matriz[i][j] = ch;
    			contar[count_t] = ch;
    			count_t++;
    			fflush(stdin);
    		}
    		printf("\n");
    	}
    	printf("\n\n");
    	char contar2[100];
    	strcpy_s(contar2, 2, NULL);
    	for (l = 0; l < contar2; l++) {
    		bool ver = false;
    		int count_ch = 0;
    		char chv[2];
    		chv[0] = contar[1];
    		chv[0] = tolower(chv[0]);
    		for (i = 0; i < m; i++) {
    			for (j = 0; j < m; j++) {
    				if (chv[0] == tolower(matriz[i][j]) && ((strchr(contar2, chv[0])) == NULL)) {
    					count_ch++;
    					ver = true;
    				}
    			}
    		}
    		strcat_s(contar2, 2, chv);
    		if (ver) {
    			printf("%c foi encontrado %i na matriz\n", chv[0], count_ch);
    		}
    	}
    	printf("\N O total de caracteres da matriz é %i\n", count_t);
    	int re = primeiroch(matriz[0][0]);
    	printf("\nResultado: %i %c \n", re, re);
    	system("pause");
    	return 0;
    }

     

  4. @arfneto Agora creio que está quase perfeito..

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<stdbool.h>
    #include<locale.h>
    #include<ctype.h>
    
    
    int primeiroch(char ch) {
    	if (islower(ch)) {
    		printf("\nMinusculo %i X 2\n", ch);
    		return ch * 2;
    	}
    	else if (isupper(ch)) {
    		printf("\nMaiusculo %i / 10\n", ch);
    		return ch / 10;
    	}
    	else {
    		printf("\não é uma letra %i X 2\n", ch);
    		return ch * 2;
    	}
    }
    int main()
    {
    	setlocale(LC_ALL, "");
    	int m = 0;
    	int n = 0;
    	while (!(m >= 1 && m <= 10)) {
    		system("cls");
    		printf("Entre com o valor de M para criar a matriz: ");
    		scanf_s("%i", &m);
    	}
    	while (!(n >= 1 && n <= 10)) {
    		system("cls");
    		printf("Entre com o valor de N para criar a matriz: ");
    		scanf_s("%i", &n);
    	}
    	printf("Matriz criada M x N = %i x %i\n", m, n);
    
    	int i = 1;
    	int j = 1;
    	int l = 0;
    	char matriz[10][100];
    	char contar[100];
    	char chv[2];
    	char ch = ' ';
    	int count_t = 0;
    	for (i = 0; i < m; i++) {
    		for (i = 0; i < m; i++) {
    
    			printf("\nPreencha %i x %i com algum caractere", (i + l), (j + l));
    			fgets(chv, 10, stdin);
    			matriz[i][j] = chv;
    			contar[count_t] = chv;
    			count_t++;
    		}
    		printf("\n");
    	}
    	printf("\n\n");
    	char contar2[100];
    	strcpy_s(contar2, 10, NULL);
    	for (l = 0; l < contar2; l++) {
    		bool ver = false;
    		int count_ch = 0;
    		char chv[2];
    		chv[0] = contar[1];
    		chv[0] = tolower(chv[0]);
    		for (i = 0; i < m; i++) {
    			for (j = 0; j < m; j++) {
    				if (chv[0] == tolower(matriz[i][j]) && ((strchr(contar2, chv[0])) == ' ')) {
    					count_ch++;
    					ver = true;
    				}
    			}
    		}
    		strcat_s(contar2, 10, chv);
    		if (ver) {
    			printf("%c foi encontrado %i na matriz\n", chv[0], count_ch);
    		}
    	}
    	printf("\N O total de caracteres da matriz é %i\n", count_t);
    	int re = primeiroch(matriz[0][0]);
    	printf("\nResultado: %i %c \n", re, re);
    
    	system("pause");
    	return 0;
    
    }
    	

    Algo que possa estar errando ai?

    Certo que sim está me retornando 

  5. #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<stdbool.h>
    #include<locale.h>
    #include<ctype.h>
    
    
    int primeiroch(char ch) {
    	if (islower(ch)) {
    		printf("\nMinusculo %i X 2\n", ch);
    		return ch * 2;
    	}
    	else if (isupper(ch)) {
    		printf("\nMaiusculo %i / 10\n", ch);
    		return ch / 10;
    	}
    	else {
    		printf("\não é uma letro %i X 2\n", ch);
    		return ch * 2;
    	}
    }
    int main()
    {
    	setlocale(LC_ALL, "");
    	int m = 0;
    	int n = 0;
    	while (!(m >= 1 && m <= 10)) {
    		system("cls");
    		printf("Entre com o valor de M para criar a matriz: ");
    		scanf_s("%i", &m);
    		fflush(stdin);
    	}
    	while (!(n >= 1 && n <= 10)) {
    		system("cls");
    		printf("Entre com o valor de N para criar a matriz: ");
    		scanf_s("%i", &n);
    		fflush(stdin);
    	}
    	printf("Matriz criada M x N = %i x %i\n", m, n);
    	int i = 1;
    	int j = 1;
    	int l = 0;
    	char matriz[10][100];
    	char contar[100];
    	
    	char ch = ' ';
    	int count_t = 0;
    	for (i = 0; i < m; i++) {
    		for (i = 0; i < m; i++) {
    			
    			printf("\nPreencha %i x %i com algum caractere", (i), (j));
    			scanf_s("%s",ch);
    			ch = matriz[i][j];
    			ch = contar[count_t];
    			count_t++;
    			fflush(stdin);
    		}
    		printf("\n");
    	}
    	printf("\n\n");
    	char contar2[100];
    	strcpy_s(contar2, 0, ' ');
    	for (l = 0; l < contar2; l++) {
    		bool ver = false;
    		int count_ch = 0;
    		char chv[2];
    		chv[0] = contar[1];
    		chv[0] = tolower(chv[0]);
    		for (i = 0; i < m; i++) {
    			for (j = 0; j < m; j++) {
    				if (chv[0] == tolower(matriz[i][j]) && ((strchr(contar2, chv[0])) == NULL)) {
    					count_ch++;
    					ver = true;
    				}
    			}
    		}
    		strcat_s(contar2, 0, chv);
    		if (ver) {
    			printf("%c foi encontrado %i na matriz\n", chv[0], count_ch);
    		}
    	}
    	printf("\N O total de caracteres da matriz é %i\n", count_t);
    	int re = primeiroch(matriz[0][0]);
    	printf("\nResultado: %i %c \n", re, re);
    	system("pause");
    	return 0;
    	}

    Alguém pode me ajudar a descobrir onde estou errando?

  6. 33 minutos atrás, arfneto disse:

     

     

    valeu

    adicionado 57 minutos depois
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<stdbool.h>
    #include<locale.h>
    #include<ctype.h>
    
    
    int primeiroch(char ch) {
        if (islower(ch)) {
            printf("\nMinusculo %i X 2\n", ch);
            return ch * 2;
        }
        else if (isupper(ch)) {
            printf("\nMaiusculo %i / 10\n", ch);
            return ch / 10;
        }
        else {
            printf("\não é uma letro %i X 2\n", ch);
            return ch * 2;
        }
    }
    int main()
    {
        setlocale(LC_ALL, "");
        int m = 0;
        int n = 0;
        while (!(m >= 1 && m <= 10)) {
            system("cls");
            printf("Entre com o valor de M para criar a matriz: ");
            scanf_s("%i", &m);
            fflush(stdin);
        }
        while (!(n >= 1 && n <= 10)) {
            system("cls");
            printf("Entre com o valor de N para criar a matriz: ");
            scanf_s("%i", &n);
            fflush(stdin);
        }
        printf("Matriz criada M x N = %i x %i\n", m, n);
        
        char matriz[10][10];
        char contar[100];
        int i = 0;
        int j = 0;
        int l = 0;
        char ch;
        int count_t = 0;
        for (i = 0; i < m; i++) {
            for (i = 0; i < m; i++) {
                printf("\nPreencha %i x %i com algum caractere", (i + l), (j + l));
                gets(ch);
                ch = matriz[i][j];
                ch = contar[count_t];
                count_t++;
                fflush(stdin);
            }
            printf("\n");
        }
        print("\n\n");
        char contar2[100];
        strcpy_s(contar2, 0, ' ');
        for (l = 0; l < contar2; l++) {
            bool ver = false;
            int count_ch = 0;
            char chv[2];
            chv[0] = contar[1];
            chv[0] = tolower(chv[0]);
            for (i = 0; i < m; i++) {
                for (j = 0; j < m; j++) {
                    if (chv[0] == tolower(matriz[i][j]) && ((strchr(contar2, chv[0])) == NULL)) {
                        count_ch++;
                        ver = true;
                    }
                }
            }
            strcat_s(contar2, 0, chv);
            if (ver) {
                printf("%c foi encontrado %i na matriz\n", chv[0], count_ch);
            }
        }
        printf("\N O total de caracteres da matriz é %i\n", count_t);
        int re = primeiroch(matriz[0][0]);
        printf("\nResultado: %i %c \n", re, re);
        system("pause");
        return 0;
        }

    Erro variável local não inicializada em 

    gets(ch);

    Alguém ai pra me ajudar?

  7. 
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<stdbool.h>
    #include<locale.h>
    #include<ctype.h>
    
    
    int primeiroch(char ch) {
        if (islower(ch)) {
            printf("\nMinusculo %i X 2\n", ch);
            return ch * 2;
        }
        else if (isupper(ch)) {
            printf("\nMaiusculo %i / 10\n", ch);
            return ch / 10;
        }
        else {
            printf("\não é uma letro %i X 2\n", ch);
            return ch * 2;
        }
    }
    int main()
    {
        setlocale(LC_ALL, "");
        int m = 0;
        int n = 0;
        while (!(m >= 1 && m <= 10)) {
            system("cls");
            printf("Entre com o valor de M para criar a matriz: ");
            scanf_s("%i", &m);
            fflush(stdin);
        }
        while (!(n >= 1 && n <= 10)) {
            system("cls");
            printf("Entre com o valor de N para criar a matriz: ");
            scanf_s("%i", &n);
            fflush(stdin);
        }
        printf("Matriz criada M x N = %i x %i\n", m, n);
        
        char matriz[10][10];
        char contar[100];
        int i = 0;
        int j = 0;
        int l = 0;
        char ch;
        int count_t = 0;
        for (i = 0; i < m; i++) {
            for (i = 0; i < m; i++) {
                printf("\nPreencha %i x %i com algum caractere", (i + l), (j + l));
                gets(ch);
                matriz[i][j] = ch;
                contar[count_t] = ch;
                count_t++;
                fflush(stdin);
            }
            printf("\n");
        }
        print("\n\n");
        char contar2[100];
        strcpy_s(contar2, NULL);
        for (l = 0; l < contar2; l++) {
            bool ver = false;
            int count_ch = 0;
            char chv[2];
            chv[0] = contar[1];
            chv[0] = tolower(chv[0]);
            for (i = 0; i < m; i++) {
                for (j = 0; j < m; j++) {
                    if (chv[0] == tolower(matriz[i][j]) && ((strchr(contar2, chv[0])) == NULL)) {
                        count_ch++;
                        ver = true;
                    }
                }
            }
            strcat_s(contar2, chv);
            if (ver) {
                printf("%c foi encontrado %i na matriz\n", chv[0], count_ch);
            }
        }
        printf("\N O total de caracteres da matriz é %i\n", count_t);
        int re = primeiroch(matriz[0][0]);
        printf("\nResultado: %i %c \n", re, re);
        system("pause");
        return 0;
        }
    
    
    

    Se alguém puder ajudar fico agradecido...

  8. Pesquisei muito sobre esse assunto mas não sei em que estou errando, se alguém puder me dar uma ajuda.

    Desde já agradeço. 

     

     

    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    int main(void)
    {
        int i, j, m, n;
        char matriz[10][10];
        printf("Digite o valor de M e N: ");
        scanf_s("%i %i", &m, &n);
    
        printf("\nDigite valor para os elementos da matriz\n\n");
    
        for (i = 0; i < m; i++)
    
            for (j = 0; j < n; j++)
            {
                printf("\nElemento[%d][%d] = ", i, j);
                gets_s("%.2s", &matriz[i][j]);     /*Exceção gerada em 0x7C23F244 (ucrtbased.dll) em TrabalhoMatriz.exe: 0xC0000005: violação de acesso ao gravar no local 0x00C87BEC.
    */
            }
    
        printf("\n\n******************* Saida de Dados ********************* \n\n");
    
        for (i = 0; i < m; i++) {
            for (j = 0; j < n; j++)
            {
                printf("%s", matriz[i][j]);
    
            }
            printf("\n");
        }
        system("pause");
        return(0);
    }

     

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!