1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
|
#include <stdio.h>
#include <math.h>
//Funtion aus main herausgezogen
void ableitung(int* a, int n, int k)
{
for (int i = 1; i <= k; i++) { //Schleife ergänzt
for (int j=1; j<=n+1; j++) //j startet bei 1
{
a[j-1]=a[j]*j; //a[j] zu a[j-1] geändert
}
}
}
int main (void)
{
int n,i,k;
int a[11];
while (n<1 || n>10) //11 zu 10 als Grenze gemacht (a0 braucht auch Speicher)
{
printf("Grad eingeben: \n");
scanf("%d" , &n);
}
for (i=0; i<=n; i++)
{
printf("Bitte den Koeffizienten a%d eingeben: " , i);
scanf ("%d" , &a[i]);
}
printf("P(x)=");
for (i=n; i>=0; i--)
{
if (i>>1)
printf("%d*x^%d +" , a[i], i);
else if (i==1)
printf ("%d*x +" , a[1]);
else
printf("%d \n" , a[0]);
}
printf("Bitte Ableitungsgrad eingeben: \n");
scanf ("%d" , &k);
ableitung(a, n, k);
printf ("P %d (x)=" , k);
for (int i=n; i>=0; i--) //a ist schon vergeben, heißt jetzt i
{
if(a[i] !=0)
printf("%dx^%d " , a[i] , i);
}
} |