c語言數列求和
1. c語言數組怎樣求和,
先獲取數組長度,然後用for循環,從數組中獲取值進行累加求和。
#include
#include
int main()
{
int n;
int val;
int * a;
int sun = 0, i;
printf("請輸入數組的長度:");
scanf("%d", &n);
printf(" ");
a = (int *)malloc(n * sizeof(int));//為數組a動態分配內存
for(i = 0; i < n; i++)
{
printf("請輸入數組的第%d個元素的值:", i+1);
scanf("%d", &val);
printf(" ");
a[i] = val;
}
for (i = 0; i < n; i++)
{
sun+=a[i];//sun+=a[i]相當於sun=sun+a[i];
}
printf("sun = %d ",sun);
free(a);//釋放a動態分配的內存
return 0;
}
(1)c語言數列求和擴展閱讀:
一個數組中的所有元素具有相同的數據類型(在C、C++、Java、pascal中都這樣。但也並非所有涉及數組的地方都這樣,比如在Visual Foxpro中的數組就並沒這樣的要求)。當然,當數據類型為 Variant 時,各個元素能夠包含不同種類的數據(對象、字元串、數值等等)。可以聲明任何基本數據類型的數組,包括用戶自定義類型和對象變數。
如果要用戶輸入的是一個數組,一般是用一個循環,但是在輸入前也需要固定數組的大小。
compact跟變長數組沒有太大的關系,也應該用不到變長數組。因為一般的傳數組到函數中就是傳數組的地址和元素的個數的,那隻是一個提示,不是要求。
2. C語言斐波那契數列求和
奇數項求和:a₁+a₃+a₅+a₇+...+a₂ₙ₋₁=a₂ₙ
偶數項求和:a₂+a₄+a₆+a₈+...+a₂ₙ=a₂ₙ₊₁-1
平方求和:a₁+a₂+a₃+a₄+...+aₙ²=aₙ·aₙ₊₁
斐波那契數列中的斐波那契數會經常出現在我們的眼前——比如松果、鳳梨、樹葉的排列、某些花朵的花瓣數(典型的有向日葵花瓣),蜂巢,蜻蜓翅膀,超越數e(可以推出更多),黃金矩形、黃金分割、等角螺線等。
(2)c語言數列求和擴展閱讀:
斐波那契數列特性
平方與前後項:從第二項開始,每個偶數項的平方都比前後兩項之積多1,每個奇數項的平方都比前後兩項之積少1。
如:第二項 1 的平方比它的前一項 1 和它的後一項 2 的積 2 少 1,第三項 2 的平方比它的前一項 1 和它的後一項 3 的積 3 多 1。
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765]
(註:奇數項和偶數項是指項數的奇偶,而並不是指數列的數字本身的奇偶)
3. C語言編程數列求和
這是c語言的語法啊 sum += double(b) / a 等同於 sum = sum + double(b) / a
右邊的sum表示變數sum的地址 因為在等號的左邊所以也稱作左值
所以是把 sum的值加上 轉換成double類型的b和a的商 儲存於 sum變數的地址中
明白了嗎?
4. 求C語言編寫等差數列求和的代碼
等差數列求和求和有兩種方法,第一種是數值循環相加,第二種是利用公式:
Sn=n*a+n*(n-1)*d/2,其中a為數列首項
代碼如下:
#include <stdio.h>
int main(void)
{
int a,m,d,sum;
int s=0,n=1;
do {
printf("清輸入等差數列首項值a,項數m,數列差值d
");
scanf("%d,%d,%d",&a,&m,&d);
}while(a<1||m<1||d<1);
while(n<=m)
{
s+=a+(n-1)*d;
n++;
}
sum=m*a+d*(m*(m-1))/2; //sum為通過公式,求等差數列的和
printf("s=%d
sum=%d
",s,sum); //s為通過數據循環相加得到的等差數列的和
return 0;
}
上圖是首項值為1,數列差值為分別1和2的情況下的求和結果,可以看出兩種不同求和方式得到結果一致。
5. C語言序列求和
這個寫個循環就好了。
int i,n,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum+i;
6. c語言數列求和
其實這個題目根本不用求出S,也不用擔心它會超出int范圍。
因為是數列,所以就要從數列規律上去找結果。
比如a=1,n=5,s=3.列豎式
1
11
111
1111
11111
------
12345
後3位是345.
個位是5,它是怎麼計算出來的?a*n
十位是4,怎麼算出來的?a*(n-1)+個的進位(如果有)
百位是3,怎麼算出來的?a*(n-2)+低位的進位(如果有)
照這個規律,根本不用計算S。
定義一個數組int sm[10].sm[0]保存個位,sm[1]保存十位數字就行了,。。。
我沒有寫出完整的程序,只是給你一個思路。自己理解一下,很好寫出代碼。遇到問題請教是好事。
7. c語言數列求和
#include <stdio.h>
main()
{
float sum;
int i, j=1, k=2;
for(i = 1; i <= 20; i++) {
printf("%d %d\n", j, k);
sum = 1.0 * j / k;
k += j;
j = k - j;
}
printf("前20項數列和是: %f\n", sum);
}
8. C語言數列求和
1.C語言:
#include <stdio.h>
void main()
{
int a=2;
int b=1;
int N=0;
float Y=0;
printf("請輸入N:");
scanf("%d",&N);
while(a<=N)
{
Y=Y+a/b;
b=a;
a=a+b;
}
printf("前 %d 項之和是:%.2f\n",N,Y);
}
2.C++:
#include <iostream>
using namespace std;
void main()
{
int a=2;
int b=1;
int N=0;
float Y=0;
cout<<"請輸入N:";
cin>>N;
while(a<=N)
{
Y=Y+a/b;
b=a;
a=a+b;
}
cout<<"前"<<N<<"項之和是:"<<Y<<endl;
}