【急募】勇者さん助けて;;C言語です
■ このスレッドは過去ログ倉庫に格納されています
円周率を求めたくて作ったのですが答えが0.000000000000になってしまい円周率が求められません。どこが間違っているのか指摘していただけませんか
#include<stdio.h> #define KETA 20 void set(int value,int a[],int n){ int i; for(i=n-1;i>=0;i--){ a[i]=value%10; value=value/10; } return; } void print(int a[],int n){ int i=0; while(a[i]==0 && i<=n-2){ i++; } printf("%d.\n",a[0]); for(i=1;i<n;i++){ printf("%d",a[i]); } printf("\n"); } void kakeru(int a[],int n,double k){ int i,tmp; int carry=0; for(i=KETA-1;i>=0;i--){ tmp=a[i]*k+carry; a[i]=tmp%10; carry=tmp/10; } return; } void waru(int a[],int n,int x){ int i,tmp; tmp=0; for(i=0;i<KETA;i++){ tmp=tmp*10+a[i]; a[i]=tmp/x; tmp=tmp%x; } } void hiku(int a[],int b[],int n){ int i; for (i=KETA-1;i>=0;i--){ a[i]=a[i]-b[i]; if(a[i]<0){ a[i-1]--; a[i]=a[i]+10; } } return; } void tasu(int a[],int b[],int n){ int i; for(i=n-1;i>=0;i--){ a[i]=a[i]+b[i]; if(a[i]>=10){ a[i]=a[i]%10; a[i-1]++; } } return; } int main(void){ int a[KETA]; int b[KETA]; int t[KETA]; int i,j; set(0,a,KETA); for(j=0;j<=360;j++){ set(1,t,KETA); waru(t,KETA,2*j+1); for(i=0;i<2*j+1;i++){ waru(t,KETA,5); } if(j%2==0){ tasu(a,t,KETA); }else{ hiku(a,t,KETA); } } kakeru(a,KETA,4); set(0,b,KETA); for(j=0;j<=360;j++){ set(1,t,KETA); waru(t,KETA,2*j+1); for(i=0;i<2*j+1;i++){ waru(t,KETA,239); } if(j%2==0){ tasu(b,t,KETA); }else{ hiku(b,t,KETA); } } hiku(a,b,KETA); kakeru(a,KETA,4); print(a,KETA); return 0; } Cは閉じていないので円周は求められない。 Oにしておけ 使ってるアルゴリズムさえわからんのに真面目に答えれるわけないだろ 初心者はこっから始めろ pi=4*(1-1/3+1/5-1/7+1/9...) ゆとりは円周率が3 中高年のおっさん以外でこれ言ってるやつ見たことないわ >>16 ゆとりの初段階だったけど円周率=π=3.14だったぞ 手計算したこともないアルゴリズムで初心者がデバッグできるわけないだろ めんどくさいからもうこれでよくね。 #include <stdio.h> int main() { double pi = 4 * atan(4); printf("pi = %0.20f", pi); return 0; } 3.141569234 10桁言えるσ(゚∀゚ )オレ年収1000万 ジェットコースター乗って安心なんて言ってるやん 千鳥が低予算やるのはお金が余ってる層にもっと株にお金をかけてくれる頼もしい味方 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる