因爲每個人,這是一個符合我的優先級的代碼,但主要的問題是他沒有按照我喜歡的方式編寫儘可能多的數字,但是,那麼,這是除以4. FE 4位數字,在點之後,8,12 16 20等在哪裏舉行?另一個問題是,如何讀取教科書中的所有符號,它只讀取一個數組。謝謝你的時間。平方根2.我做過C語言的一些錯誤
#include <malloc.h>
#include <math.h>
#include <cstdio>
#include <cstring>
long B=10000000;
long LB=4;
void SetToInteger (long n, long *x, long Integer) {
long i;
for (i=1; i<n; i++) x[i] = 0;
x[0] = Integer;
}
long IsZero (long n, long *x) {
long i;
for (i=0; i<n; i++)
if (x[i]) return 0;
return 1;
}
void Add (long n, long *x, long *y) {
long carry=0, i;
for (i=n-1; i>=0; i--) {
x[i] += y[i]+carry;
if (x[i]<B) carry = 0;
else {
carry = 1;
x[i] -= B;
}
}
}
void Mul (long n, long *x, long q) {
long carry = 0, xi, i;
for (i=n-1; i>=0; i--) {
xi = x[i]*q;
xi += carry;
if (xi>=B) {
carry = xi/B;
xi -= (carry*B);
}
else
carry = 0;
x[i] = xi;
}
}
void Div (long n, long *x, long d) {
long carry=0, xi, q, i;
for (i=0; i<n; i++) {
xi = x[i]+carry*B;
q = xi/d;
carry = xi-q*d;
x[i] = q;
}
}
void Print (long n, long *x) {
long i;
printf ("%d.", x[0]);
for (i=1; i<n; i++) {
printf ("%.4d", x[i]);
if (i%25==0) printf ("%8d\n", i*4);
}
printf ("\n");
}
int main() {
char co[5000];
char sym[5000] = "symboliai.txt";
FILE* f = fopen (sym, "r");
for (int i=0; !feof(f); i++)
co[i] = fgetc(f); //1 symbol? (http://www.copypastecharacter.com/all-characters just deleted the numbers.)
printf("%s",co);
printf("digits?\n");
int n=0;
scanf("%d",&n);
for (int a=0; a<strlen(co)-1;a++)
if((co[a]!=n|| n>=0))
{
long NbDigits=n, size=1+NbDigits/LB;
long *r2 = (long *)malloc(size*sizeof(long));
long *uk = (long *)malloc(size*sizeof(long));
long k=1;
SetToInteger (size, r2, 1);
SetToInteger (size, uk, 1);
while (!IsZero(size, uk)) {
Div (size, uk, 57122);
Div (size, uk, 2*k);
Mul (size, uk, 2*k-1);
Add (size, r2, uk);
k++;
}
Mul (size, r2, 239);
Div (size, r2, 169);
Print (size, r2);
free (r2);
free (uk);}
else
printf("skaicius neigiamas");
}
如果您有兩個不同的問題,則將其作爲兩個不同的問題發佈。 –
至於* one *的問題,請嘗試學習如何使用調試器。然後你可以逐行瀏覽代碼,看看會發生什麼,而你可以看到所有變量的值是什麼。 –