1樓:霍工
要注意以下幾點:
要求pi的精度是0.0005,那麼在最後返回值運算到乘以2的時候精度會增加一倍。因此程式中精度的判斷值減半,變成0.001
雙精度型的變數跟整型變數之間運算的時候,建議將整形的資料強制轉換成雙精度型的,以免計算機位數差異產生誤差。
3. 使用整形i來計算迭代,建議使用長整型型別(long),以免位數不夠,達不到精度。
改成如下程式會輸出正確結果。
double fun(double exp)
double sum=4.0;
double x=1.0,y=3.0;
long i;
sum=sum/3;
for(i=2;(x/y)>=exp*2;i++) /*這裡必須也乘以2*/
x=x*((double)i); /*這裡計算需要將整型強制轉換為雙精度,以減少計算機錯誤概率*/
y=y*(2*(double)i+1);
sum=sum+x/y;
return sum*2; /*這裡乘以2了*/
main()
double exp;
clrscr();
scanf("%lf",&exp);
printf("%lf\n",fun(exp));
2樓:計算機
#include
double fun(double exp)int i;
double sum=1.0;
double x=1.0,y=3.0;
for(i=2;x/y>=exp;i++)sum+=x/y;
x=x*i;
y=y*(2*i+1);
return sum*2;
void main()
double exp;
printf("請輸入精度:");
scanf("%f",&exp);
printf("%f",fun(exp));
執行結果
3樓:最大的寶寶
x那項改成這樣:
x = x * i;
函式引數也要代入函式中
一道c語言題,求解答
4樓:
輸出的結果是:102548
5樓:
輸出102548
printf("%d",*p); p指向a[0] 輸出10p++; 執行結束後p指向a[1]
printf(("%d",*p++); 先列印再計算p++,執行後列印出a[1],p指向a[2]
printf(("%d",*++p);先計算++p,再列印,執行後列印出a[3],p指向a[3]
6樓:不願相離
輸出結果是10 25 48
7樓:草叢裡的落葉
102548 .
一道c語言程式設計題,求解答
8樓:馮小氣氣
*s沒有初始化,沒有指向一塊記憶體。
while(*str != ' ')當遇到空格的時候就直接退出while迴圈了,並不會去掉空格。
並且即使你進了while迴圈,你最後賦值的時候指標s已經到了最後了,也不會正確。
void fun(char* str)
str++;
}memset(tmps, 0, strlen(tmps));
memcpy(tmps, s, strlen(s));
free(s);}
9樓:一縷青塵
你這樣能刪那就見鬼了。你只是把指標一直移來移去,根本沒有修改記憶體,怎麼能達到目的?你用紙畫一下,把記憶體用格子表示,指標用指向格子的箭頭表示,你自己一步步跟著分析一下,自己就知道了。
一道c語言題,求解答
一道c語言題,求解答,謝謝啦
10樓:匿名使用者
a選項,pp[i][j] 非法,抄不能表示陣列a中元襲素的bai地址。
c選項,*(*(p+i)+j) 表示的是數du組a某個元素的zhi內容,而不是元dao素的地址。
d選項,p無法表示陣列a元素的地址,p是一個指標陣列,從它取一遍才能得到陣列a元素的地址。
一道c語言程式題目,求解答~~
11樓:匿名使用者
上面的**中,沒有對s進行輸入,所以如果輸出s的話,指定會是亂碼的啊把指標調回p[0]的話,可以p--回去
或者在p改變之前,用tmp_p儲存起始位置。
struct stu *tmp_p = p;
……p = tmp_p;
此外,我猜,這個程式中的s是為了儲存平均值?
struct stu
;int main()
{int i,l;
float s;
scanf("%d",&l);
struct stu *p;
p=(struct stu*)malloc(sizeof(struct stu)*l);
s = 0;
for (i=0;i
12樓:王勃啊
輸出第一個成績的話這樣就可以了
#include "stdio.h"
#include
#include
struct stu
;int main()
{int i,l;
float s;
scanf("%d",&l);
struct stu *p;
p=(struct stu*)malloc(sizeof(struct stu)*l);
for (i=0;i
13樓:匿名使用者
#include
#include
struct stu
;int main()
printf("%f\n", p->score );
return 0;}
一道c語言題目,求解答!!!!!!!
14樓:花落へべ若相惜
scanf()函式中沒有精度控制。
如: scanf("%5.2f",&a); 是非法的。不能企圖用此語句輸入小數為2位的實數。則排除c
b,d沒有%排除
15樓:與子如初見
格式輸入嚴格按照格式輸入就好了,如果是c的話輸入得是
6.2283.1900
6.2在輸出的時候有作用,再輸入的時候沒作用。
一道C語言程式設計題,一道C語言程式設計題
源 只要150行的程式就能用於 抗震救災 一道c語言程式設計題 15 在vc6下除錯通過。include stdio.h main printf 共有 版 d組解 權 n count 一道c語言程式設計題。5 include int s 100 100 定義陣列,第i行存的是第i個學生的成績 int...
一道c語言函式題,一道C語言函式題
原因 i是全域性變數 一步一步來分析這個程式 從main進入 for i 5 i 8 i aa 進入迴圈首先i 5,i 8成立 執行aa 此時i 5 執行下面的迴圈 for i 5 i 8 i printf printf n 列印3個星號一個回車符 然後i的值由於aa中的迴圈變成了8 好了,aa執行...
C語言的一道程式設計題一道C語言程式設計題
include typedef struct pos int right pos pos1,pos pos2,pos pos3 double lengthfun pos pos1,pos pos2 int main pos2 pos3 printf n請輸入第 1個點的座標 t printf n請輸...