Criei um código que deveria encontrar o zero da função. Mas, deve ser aplicado 21 vezes (valores diferentes). Fiz as matrizes que indicam tais valores, mas não consigo fazer o código percorrer as matrizes. O resultado sempre apresenta os valores para quando 'n=0'. 'n' foi declarado como uma variável global. #include <stdio.h> #include <stdlib.h> #include <math.h> int n = 0; double f(float o) { double q[21]= {388.07341, 418.81479, 442.16885, 462.16931, 480.01095, 496.37744, 511.99764, 525.99764, 541.28612, 555.60796, 570.77167, 593.81948, 616.10838, 639.92981, 648.86987, 658.60439, 666.37960, 672.93722, 677.64320, 677.64320, 677.64320}; double p[21]= {131.31613, 141.60402, 148.87696, 155.24767, 161.23076, 166.96861, 171.67016, 179.48304, 187.87701, 191.80595, 202.06493, 225.74231, 258.89635, 286.37328, 301.45585, 317.76931, 334.90509, 353.95479, 375.74816, 404.68645, 420.15252}; double f[21]= {0.00022, 0.00068, 0.00124, 0.00192, 0.00275, 0.00376, 0.00494, 0.00659, 0.00910, 0.01179, 0.01553, 0.02290, 0.03279, 0.04229, 0.04697, 0.05168, 0.05684, 0.06319, 0.07201, 0.08735, 0.09867}; return (q[n] - o * pow (1 + 2.25*f[n]*f[n] - 2*1.5*f[n]*cosh ((3*p[n])/(2*o)),1/2)); } main () { int i, maxi; i=1; maxi=30; float a,b, med, E; a=300; b=1000; E= 0.0001; while ((n=!20)) { do { med=(a+b)/2; if (f(a)*f(med)<0) { b=med; } else { a=med; } i++; }while (((b-a)>E) || (i<=maxi)); printf(" Ponto %d \nA raiz esta entro o intervalo %f e %f\n Sendo aproximadamente %f\n Foram necessarias %d iteracoes\n\n\n",n, a, b, med, i); n++; } system ("pause"); } [/codebox] É possível incrementar o valor de uma variavel global?? Por favor alguém me ajude!!