Ir para conteúdo
Fórum Script Brasil

Alaplaia

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre Alaplaia

Alaplaia's Achievements

0

Reputação

  1. Bom dia. É a primeira vez que vou fazer um programa com matriz bidimensional ,que é passada por parâmetro ao invés de criar dentro do módulo. O objetivo seria fazer a soma dos valores de uma coluna de uma matriz, que o usuário deve escrever a quantidade de linhas e colunas que acaba sendo as mesmas, sendo no máximo 5 linhas e colunas. Ele dá os seguintes erros: 5 C:\Documents and Settings\User\Desktop\cpp\soma de colunas.cpp declaration of `A' as multidimensional array must have bounds for all dimensions except the first C:\Documents and Settings\User\Desktop\cpp\soma de colunas.cpp In function `int lerMatriz(int*, int*)': 14C:\Documents and Settings\User\Desktop\cpp\soma de colunas.cpp `A' undeclared (first use this function) (Each undeclared identifier is reported only once for each function it appears in.) At global scope: 35 C:\Documents and Settings\User\Desktop\cpp\soma de colunas.cpp declaration of `B' as multidimensional array must have bounds for all dimensions except the first C:\Documents and Settings\User\Desktop\cpp\soma de colunas.cpp In function `void mostrarMatriz(int*, int*)': 40 C:\Documents and Settings\User\Desktop\cpp\soma de colunas.cpp `B' undeclared (first use this function) C:\Documents and Settings\User\Desktop\cpp\soma de colunas.cpp In function `int main()': 49 C:\Documents and Settings\User\Desktop\cpp\soma de colunas.cpp cannot convert `int (*)[5]' to `int*' for argument `1' to `int lerMatriz(int*, int*)' 51 C:\Documents and Settings\User\Desktop\cpp\soma de colunas.cpp cannot convert `int (*)[5]' to `int*' for argument `1' to `void mostrarMatriz(int*, int*)' #include <stdio.h> #include <conio.h> int lerMatriz(int A[][], int *i, int *j) { int aux; printf("Digite um numero para determinar o tamanho de linhas e colunas da matriz bidimensional A: "); scanf("%d",&aux); for(*i=0;*i<aux;*i++) { for(*j=0;*j<aux;*j++) { printf("Digite um numero para a posicao:linha %d, coluna %d",*i,*j); scanf("%d",A[*i][*j]); } } *i=aux; *j=aux; } void somarMatriz(int A[][], int B[][], int *i, int *j) { int soma=0, auxi, auxj; for (auxj=0;auxj<*j;auxj++) { for (auxi=0;auxi<*i;auxi++) { soma=soma+A[auxi][auxj]; } B[1][auxj]=soma; } } void mostrarMatriz(int B[][], int *i, int *j) { for (int auxi=0;auxi<*i;auxi++) { for (int auxj=0;auxj<*j;auxj++) { printf("A soma da coluna e: %d", B[1][*j]); } } } main() { int A[5][5],B[1][5],i=0,j=0; lerMatriz(A,&i,&j); somarMatriz(A,B,&i,&j); mostrarMatriz(B,&i,&j); getch(); }
  2. Bom dia. Estou com um probleminha, este meu programa (linguagem C ) compila, mas na hora de colocar a quantidade de parcelas ele gera o erro de memória, que ela não pode ser written. Não consigo achar o lugar onde esta o erro, se alguém puder me ajudar eu agradeço. A estrutura é essa mesmo, caso acharem melhor que eu melhore, pois os módulos estão grandes.. #include <stdio.h> #include <conio.h> float valorCarro() { float x; printf("Digite o valor do carro"); scanf("%f",&x); return(x); } void lerParcelas( float *vrcarro, int *qntparcela , float *vrparcela, float *vrfinal ) { int tabela[10][2] = { {6,3},{12,6},{18,9},{24,12},{30,15},{36,18},{42,21},{48,24},{54,27},{60,30} }, x; printf("Na tabela a seguir o primeiro numero corresponde a quantidade de parcelas e o da frente corresponde ao valor de juros\n"); for (int i=0;i<10;i++) { for (int j=0;j<2;j++) { printf(" %d ",tabela[i][j]); } printf("\n"); } printf("Digite a quantidade de parcelas, caso for compra a vista digite 1: "); scanf("%d",*qntparcela); x = *qntparcela; switch(x) { case 1: *vrfinal = *vrcarro - (*vrcarro*20/100); break; case 6: *vrfinal = *vrcarro + (*vrcarro*3/100); break; case 12: *vrfinal = *vrcarro + (*vrcarro*6/100); break; case 18: *vrfinal = *vrcarro + (*vrcarro*9/100); break; case 24: *vrfinal = *vrcarro + (*vrcarro*12/100); break; case 30: *vrfinal = *vrcarro + (*vrcarro*15/100); break; case 36: *vrfinal = *vrcarro + (*vrcarro*18/100); break; case 42: *vrfinal = *vrcarro + (*vrcarro*21/100); break; case 48: *vrfinal = *vrcarro + (*vrcarro*24/100); break; case 54: *vrfinal = *vrcarro + (*vrcarro*27/100); break; case 60: *vrfinal = *vrcarro + (*vrcarro*30/100); break; default: printf("Quantidade invalida de parcelas!"); } printf("%f",*vrfinal); printf("%d",*qntparcela); *vrparcela = *vrfinal/float(*qntparcela); } void mostrarValor(float *vrfinal, float *vrparcela, int *qntparcela) { printf("O valor final do carro e: %.2f.\nA quantidade de parcelas e: %d.\nO valor de cada parcela e %.2f", *vrfinal, *qntparcela, *vrparcela); } main() { float vrcarro, vrparcela, vrfinal; int qntparcela; vrcarro = valorCarro(); lerParcelas (&vrcarro, &qntparcela, &vrparcela, &vrfinal ); mostrarValor(&vrfinal, &vrparcela, &qntparcela); getch(); } Obrigado desde já! Descobri o erro, era nesta parte: Coloquei um * na hora de salvar o valor. Obrigado
×
×
  • Criar Novo...