作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大家好,这是一个适合我优先考虑的代码,但主要问题是他在点后写的数字没有我喜欢的那么多,而是除以 4. F.E. 4 位数字,之后点、8、12 16 20 等。哪里有问题?另一个问题,如何读取一本课本上的所有符号,它只读取一个到数组。感谢您抽出时间。
#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");
}
最佳答案
我认为您所问的(至少一个问题)是如何以更高的精度进行打印。
要更改输出到屏幕的小数点位数,请将其中的 .4 更改为您想要打印的位数。 print语句中小数点前后的数字告诉你小数点前后将输出多少位。:
printf("%.4d", x[i]);
请注意,虽然您只能打印与实际存储的值一样多的小数点,但其余部分将是乱码。
您还在整数类型值(长整型)后打印小数点,这是没有意义的。我不确定你想用这段代码做什么,因此我不太确定除了这个之外还有什么建议。尝试 double (%lf)?
关于c - 2的平方根。我在C语言中犯过的一些错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33801147/
我是一名优秀的程序员,十分优秀!