|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Feb 2005
Messaggi: 162
|
[c]non da errori ma non fa nulla
ora il programma non da errori...ma neanche fa nulla (una cosa la stampa, il prodotto è 0)
Codice:
#include<math.h>
#include<stdlib.h>
#include<stdio.h>
int rand( );
int matB( );
int somma(int **matriceB );
int prod(int **matrice);
main()
{
int matriceA[100][100];
int sum,prodotto,i,j,x,y;
int *matrice;
sum=i=j=x=y=0;
matrice=&matriceA[0][0];
printf("il prodotto è%d\n",prodotto);
system("PAUSE");
return 0;
}
/*FUNZIONE RIEMPIE MATRICE RAND*/
int rand()
{
int matriceA[100][100];
int i,j;
for(i=0;i<100;i++)
for(j=0;j<100;j++)
matriceA[i][j]=1+(rand()%10);
}
/*FUNZIONE CHE CREA MATRICE B*/
int matB()
{
int i,j,x,y;
int matriceB[100][100];
int matriceA[100][100];
for(i=0;i<100;i++)
for(j=0;j<100;j++)
if(matriceA[i][j]%2==0){
matriceB[x][y]=matriceA[i][j];}
else matriceB[x][y]=matriceA[i][j]*2;
printf("matriceB è%d->\n",matriceB[x][y]);
return 0;
}
/*FUNZIONE SOMMA*/
int somma(int **matriceB )
{
int x,y;
int sum;
for(x=0;x<100;x++){
for(y=0;y<100;y++)
sum+=matriceB[x][y];}
printf("la somma della matrice b è\n",sum);
return sum;
}
int prod(int **matrice)
{
int x, prodotto=1;
for(x=0; x<100; x++)
prodotto*=matrice[x][x];
return prodotto;
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
|
come prima cosa cambia nome alla funzione rand (es. riempi)
nel main non hai richiamato la funzione riempi... e inoltre a riempi() devi passare come parametro la matrice... Ultima modifica di VegetaSSJ5 : 21-05-2005 alle 19:17. |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Feb 2005
Messaggi: 162
|
ma come la devo richiamare la funzione riempi ne main?
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Feb 2005
Messaggi: 162
|
perchè mettere 2 asterischi
?int prod(int **matrice); |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
|
non l'ho provato quindi non so se funziona
Codice:
#include<math.h>
#include<stdlib.h>
#include<stdio.h>
void riempi (int **matrice);
int *matB (int **matrice);
int somma (int **matrice);
int prod (int **matrice);
int main (void) {
int matriceA[100][100];
int matriceB[100][100];
printf("Creo la matriceA");
riempi(matriceA);
printf("Il prodotto della matriceA e' %d\n", prod(matriceA));
printf("La somma della matriceA e' %d\n", somma(matriceA));
printf("Creo la matriceB...\n");
matriceB= matB(matriceA);
printf("Il prodotto della matriceB e' %d\n", prod(matriceB));
printf("La somma della matriceB e' %d\n", somma(matriceB));
system("PAUSE");
return 0;
}
/*FUNZIONE RIEMPIE MATRICE RAND*/
void riempi (int **matrice) {
int i,j;
for (i=0;i<100;i++)
for (j=0;j<100;j++)
matrice[i][j]=1+(rand()%10);
}
/*FUNZIONE CHE CREA MATRICE B*/
int *matB (int **matrice) {
int i, j, x, y;
int matriceB[100][100];
for (i=0;i<100;i++) {
for (j=0;j<100;j++) {
if (matrice[i][j]%2==0) matriceB[i][j]=matrice[i][j];
else matriceB[i][j]=matrice[i][j]*2;
}
}
return matriceB;
}
/*FUNZIONE SOMMA*/
int somma (int **matrice) {
int x, y, sum;
for (x=0;x<100;x++)
for(y=0;y<100;y++)
sum+=matrice[x][y];
return sum;
}
/*FUNZIONE PRODOTTO*/
int prod (int **matrice) {
int x, prodotto=1;
for(x=0; x<100; x++)
prodotto*=matrice[x][x];
return prodotto;
}
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
|
Quote:
|
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Feb 2005
Messaggi: 162
|
giusto
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Feb 2005
Messaggi: 162
|
da un bel po di errori
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
|
Quote:
te l'ho detto che non l'avevo provato...
|
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
|
questo programma è testato e funziona bene.
Codice:
#include<math.h>
#include<stdlib.h>
#include<stdio.h>
#define DIM 10
int **creaMatrice (void);
void riempi (int **matrice);
void creaMatrB (int **matrOld, int **matrNew);
int somma (int **matrice);
int prod (int **matrice);
int main (void) {
int **matriceA, **matriceB;
matriceA= creaMatrice();
srand(time(NULL));
printf("Riempio la matrice A...\n");
riempi(matriceA);
printf("Il prodotto della matrice A e' %d\n", prod(matriceA));
printf("La somma della matrice A e' %d\n", somma(matriceA));
matriceB= creaMatrice();
printf("Creo la matrice B...\n");
creaMatrB(matriceA, matriceB);
printf("Il prodotto della matrice B e' %d\n", prod(matriceB));
printf("La somma della matrice B e' %d\n", somma(matriceB));
system("PAUSE");
return 0;
}
/*FUNZIONE RIEMPIE MATRICE RAND*/
void riempi (int **matrice) {
int i, j;
for (i=0; i<DIM; i++)
for (j=0; j<DIM; j++)
matrice[i][j]= 1 + (rand()%10);
}
/*FUNZIONE CHE CREA MATRICE B*/
void creaMatrB (int **matrOld, int **matrNew) {
int i, j;
for (i=0;i<DIM;i++) {
for (j=0;j<DIM;j++) {
if (matrOld[i][j]%2==0) matrNew[i][j]=matrOld[i][j];
else matrNew[i][j]=matrOld[i][j]*2;
}
}
return;
}
/*FUNZIONE SOMMA*/
int somma (int **matrice) {
int x, y, sum;
sum= 0;
for (x=0; x<DIM; x++)
for(y=0; y<DIM; y++)
sum+= matrice[x][y];
return sum;
}
/*FUNZIONE PRODOTTO*/
int prod (int **matrice) {
int x, prodotto=1;
for(x=0; x<DIM; x++)
prodotto= prodotto * matrice[x][x];
return prodotto;
}
/*FUNZIONE CHE ALLOCA MEMORIA PER UNA MATRICE QUADRATA*/
int **creaMatrice (void) {
int **matrice, i;
matrice= (int **) malloc (DIM*sizeof(int*));
for (i=0; i<DIM; i++)
matrice[i]= (int *) malloc (DIM*sizeof(int));
return matrice;
}
|
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Feb 2005
Messaggi: 162
|
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
|
Quote:
Codice:
#include<math.h>
#include<stdlib.h>
#include<stdio.h>
#define DIM 10
void riempi (int matrice[DIM][DIM]);
void creaMatrB (int matrOld[DIM][DIM], int matrNew[DIM][DIM]);
int somma (int matrice[DIM][DIM]);
int prod (int matrice[DIM][DIM]);
int main (void) {
int matriceA[DIM][DIM], matriceB[DIM][DIM];
srand(time(NULL));
printf("Riempio la matrice A...\n");
riempi(matriceA);
printf("Il prodotto della matrice A e' %d\n", prod(matriceA));
printf("La somma della matrice A e' %d\n", somma(matriceA));
printf("Creo la matrice B...\n");
creaMatrB(matriceA, matriceB);
printf("Il prodotto della matrice B e' %d\n", prod(matriceB));
printf("La somma della matrice B e' %d\n", somma(matriceB));
system("PAUSE");
return 0;
}
/*FUNZIONE RIEMPIE MATRICE RAND*/
void riempi (int matrice[DIM][DIM]) {
int i, j;
for (i=0; i<DIM; i++)
for (j=0; j<DIM; j++)
matrice[i][j]= 1 + (rand()%10);
}
/*FUNZIONE CHE CREA MATRICE B*/
void creaMatrB (int matrOld[DIM][DIM], int matrNew[DIM][DIM]) {
int i, j;
for (i=0;i<DIM;i++) {
for (j=0;j<DIM;j++) {
if (matrOld[i][j]%2==0) matrNew[i][j]= matrOld[i][j];
else matrNew[i][j]= matrOld[i][j]*2;
}
}
return;
}
/*FUNZIONE SOMMA*/
int somma (int matrice[DIM][DIM]) {
int x, y, sum;
sum= 0;
for (x=0; x<DIM; x++)
for(y=0; y<DIM; y++)
sum+= matrice[x][y];
return sum;
}
/*FUNZIONE PRODOTTO*/
int prod (int matrice[DIM][DIM]) {
int x, prodotto=1;
for(x=0; x<DIM; x++)
prodotto= prodotto * matrice[x][x];
return prodotto;
}
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:17.











?








