SCUSATE, RIECCO IL MIO CODICE:
codice:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
const int size=10;
typedef double vettore[size];
typedef double matrice[size][size];
int leggidim();
double leggitol();
void leggimatrice(matrice, int);
void calcolaw(matrice, vettore, int);
int calcola_wmax(vettore, int);
double calcola_mk(matrice, int);
main()
{
int n,i,j, k=1; double tol, wmax, mk; matrice A0,A ,B; vettore w;
n=leggidim();
tol=leggitol();
leggimatrice(A0,n);
calcolaw(A0,w,n);
wmax=calcola_wmax(w,n);
if(wmax<tol){
printf("attenzione, wmax minore della tolleranza");}
else
{ for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
A[i][j]=(A0[i][j])/(10*wmax);}
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
B[i][j]=A[i][j];
do {
mk=calcola_mk(B,n);
printf("mk=%lf",mk);}
while((mk<=tol)||(k==100));
k++;
printf("k=%d",k);
system("pause");
return 0;
}
int leggidim()
{
int n;
do
{
printf("\n\n Quante componenti ha il vettore w e la matrice A? n=");
scanf("%d", &n);
}
while((n<0)&&(n>10));
return n;
}
double leggitol()
{
double tol;
printf("\n\n Inserire un numero reale positivo eps=");
scanf("%lf", &tol);
return tol;
}
void leggimatrice(matrice A0, int n)
{
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
{
printf("\n A0[%d][%d]=", i+1, j+1);
scanf("%lf", & A0[i][j]);
}
return;
}
void calcolaw(matrice A0,vettore w,int n)
{
int i,j;
for(i=0; i<n; i++){
w[i]=0;
for(j=0; j<n; j++)
w[i]+=A0[i][j];}
return;
}
int calcola_wmax(vettore w, int n)
{
double max=w[1];
int i;
for(i=2; i<n; i++){
if(w[i]<max){max=w[i];}
}
printf("wmax=%d",max);
return 0;
}
double calcola_mk (matrice B, int n)
{
int i, j; double sum=0, norma=0;
for(i=0; i<n; i++){
for(j=0; j<n; j++){
sum+=B[i][j];
norma=sqrt(sum*2);}}
return 0;
}