Kod: Markera allt
#include "stdio.h"
int main ()
{
int x;
double f[20];
for (x=0; x<30; x++){
f[x]=x*x-5.7*x+1.0/13.0+3.0/x;
printf("f(%d)=%f\n", x, f[x]);
}
return 0;
}
Helt väntat, inga konstigheter. Efter 20 varv i loopen hamnar vi utanför det definierade intervallet och får då följaktligen ett felmeddelande. Så långt allt väl.f(0)=inf
f(1)=-1.623077
f(2)=-5.823077
f(3)=-7.023077
f(4)=-5.973077
f(5)=-2.823077
f(6)=2.376923
f(7)=9.605495
f(8)=18.851923
f(9)=30.110256
f(10)=43.376923
f(11)=58.649650
f(12)=75.926923
f(13)=95.207692
f(14)=116.491209
f(15)=139.776923
f(16)=165.064423
f(17)=192.353394
f(18)=221.643590
f(19)=252.934818
Segmenteringsfel
Modifiering:
Kod: Markera allt
#include "stdio.h"
int main ()
{
/* int x; */
int r=20, x;
/* double f[20]; */
double f[r];
for (x=0; x<30; x++){ // Inga ändringar i resten av koden.
f[x]=x*x-5.7*x+1.0/13.0+3.0/x;
printf("f(%d)=%f\n", x, f[x]);
}
return 0;
}
Kan någon förklara varför f plötsligt kunde ha 27 element (0-26)?f(0)=inf
f(1)=-1.623077
f(2)=-5.823077
f(3)=-7.023077
f(4)=-5.973077
f(5)=-2.823077
f(6)=2.376923
f(7)=9.605495
f(8)=18.851923
f(9)=30.110256
f(10)=43.376923
f(11)=58.649650
f(12)=75.926923
f(13)=95.207692
f(14)=116.491209
f(15)=139.776923
f(16)=165.064423
f(17)=192.353394
f(18)=221.643590
f(19)=252.934818
f(20)=286.226923
f(21)=321.519780
f(22)=358.813287
f(23)=398.107358
f(24)=439.401923
f(25)=482.696923
f(26)=527.992308
Segmenteringsfel