當前位置:首頁 » 編程語言 » c語言編程求和

c語言編程求和

發布時間: 2022-12-27 07:26:09

c語言編程兩個數求和

用數組做,高精度演算法。數組的每一個元素放一個位,如a[0]代表個位,a[1]代表十位,依此類推。
下面是演算法的實現:
c[0]=(a[0]+b[0])%10; //c[x]為結果,a[x],b[x]為兩個加數
overflow=(a[0]+b[0])/10; //overflow為進位的值
for(i=1;i<n;i++) //n為你兩個加數的最大位數
{
c[i]=(a[i]+b[i]+overflow)%10; //a和b的第i位相加再加上第i-1位的進位的和的個位是c第i位的值
overflow=(a[i]+b[i]+overflow)/10; //a和b的第i位相加再加上第i-1位的進位的和的十位是向高位的進位
}

當然讀數的時候要注意,由於位數太大,可以將其當成字元串讀,再按位分離。(可能還有其他辦法,不列舉)

舉個實例
987+87=?
個位相加c[0]=(a[0]+b[0])%10=(7+7)%10=4 ,進位 overflow=(a[0]+b[0])/10=1
十位相加c[1]=(a[1]+b[1]+overflow)%10= (8+8+1)%10=7 進位 overflow=(a[1]+b[1]+overflow)/10=1
百位相加c[2]=(a[2]+b[2]+overflow)%10=(9+0+1)%10=0 進位 overflow=(a[1]+b[1]+overflow)/10=1
。。。下面類推

Ⅱ c語言函數求和

先說個題外話,您認為k=add(i,j)比k=i+j簡單嗎? 回到正題,問題出在scanf,改成scanf("%d%d", &i, &j);就可以了。如果不改,那麼你輸入就應該這樣(例如):3,5。輸出結果:8。也就是說,你必須在輸入時輸入兩個數,並且以「,」隔開。還有個問題,你的getchar不會使程序暫停,因為輸入隊列中的「\"傳入了getchar,你可以再加一個getchar,或者先清空輸入隊列,用scanf輸入函數使之停頓。也可以,或者改用system("pause")暫停程序。

Ⅲ C語言 求和怎麼寫

  1. 用C語言實現1+2+3+…+10

  2. 初始化

    代碼段:

    int i,s1=0,s2=0,s3=0;

  3. 使用for語句實現:

    代碼段:

    for(i=1;i<=10;i++)//for語句部分

    {

    s1+=i;

    }

    printf("s1=%d ",s1);

  4. 使用while語句實現:

    代碼段:

    i=1;

    while(i<=10) //while語句部分

    {

    s2+=i;

    i++;

    }

    printf("s2=%d ",s2);

  5. 使用do..while語句實現:

    i=1;

    do//do..while語句部分

    {

    s3+=i;

    i++;

    }while(i<=10);

    printf("s3=%d ",s3);

  6. 運行結果:

    S1=55;

    S2=55;

    S3=55;

    結果運行都是正確的

  7. 整體代碼如下:

    #include<stdio.h>

    void main()

    {

    int i,s1=0,s2=0,s3=0;

    for(i=1;i<=10;i++)//for語句部分

    {

    s1+=i;

    }

    printf("s1=%d ",s1);

    i=1;//while語句部分

    while(i<=10)

    {

    s2+=i;

    i++;

    }

    printf("s2=%d ",s2);

    i=1;//do..while語句部分

    do

    {

    s3+=i;

    i++;

    }while(i<=10);

    printf("s3=%d ",s3);}

Ⅳ 用C語言怎麼編一個求和的程序

C語言實現並行求和演算法:

1、問題描述
將數組A均勻劃分成m個片段,每個數組片段最多有(n+m-1)/m 個元素。每個數組片段分別由一個線程負責局部求和,最後這些部分和加起來就得到數組中所有元素的總和。

2、代碼書寫

3、注意事項

C語言中不允許動態數組類型。例如: int n;scanf("%d",&n);int a[n]; 用變數表示長度,想對數組的大小作動態說明,這是錯誤的。這里使用malloc 向系統申請分配指定size個位元組的內存空間。void* 類型可以強制轉換為任何其它類型的指針。

Ⅳ 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;

}

(5)c語言編程求和擴展閱讀:

一個數組中的所有元素具有相同的數據類型(在C、C++、Java、pascal中都這樣。但也並非所有涉及數組的地方都這樣,比如在Visual Foxpro中的數組就並沒這樣的要求)。當然,當數據類型為 Variant 時,各個元素能夠包含不同種類的數據(對象、字元串、數值等等)。可以聲明任何基本數據類型的數組,包括用戶自定義類型和對象變數。

如果要用戶輸入的是一個數組,一般是用一個循環,但是在輸入前也需要固定數組的大小。

compact跟變長數組沒有太大的關系,也應該用不到變長數組。因為一般的傳數組到函數中就是傳數組的地址和元素的個數的,那隻是一個提示,不是要求。

Ⅵ 用C語言怎麼編一個求和的程序

#include

int
main()
{
char
str[1000];
int
n,m,i;
scanf("%d%d",&m,&n);///輸入從第m個字元開始刪除n個字元。
scanf("%s",&str);
for(i=0;str[i]!='\0';i++)
{
if(i
m+n-2)
printf("%c",str[i]);
//如果不是用於輸入的話,可用一個字元串接受它的值。
}
printf("\n");
return
0;
}

Ⅶ 用c語言編程如何實現求和的程序代碼

1、首先把頭文件,main函數寫好#include<stdio.h> main(),如下圖所示。

Ⅷ C語言編程實現從1到100的求 和

清楚演算法就可以很快寫出:

(1)只需輸入2個變數n和sum,且sum=n+sum.

(2)確定n的范圍為n<=100

(3)循環體為

for(n=1;n<=100;n++)

sum+=n;

(4)根據C語言編輯規則寫出程序

用for循環求:

#include<stdio.h>

int main(void)

{

int n,sum=0;

for(n=1;n<=100;n++)

sum+=n;

printf("1+2+...+100=%d\n",sum)

return 0;

}

程序運行結果:

1+2+...+100=5050



(8)c語言編程求和擴展閱讀:

for( i=1; i<=100; i++ ) sum=sum+i;
先給i賦初值1,判斷i是否小於等於100,若是則執行語句,之後值增加1。再重新判斷,直到條件為假,即i>100時,結束循環。相當於:

i=1;

while(i<=100){

sum=sum+i;

i++;

}

對於for循環中語句的一般形式,就是如下的while循環形式:
表達式1;
while(表達式2){
語句
表達式3;
}
使用for語句應該注意:
1) for循環中的「表達式1(循環變數賦初值)」、「表達式2(循環條件)」和「表達式3(循環變數增量)」都是選擇項,即可以預設,但分號(;)不能預設。
2) 省略了「表達式1(循環變數賦初值)」,表示不對循環控制變數賦初值。
3) 省略了「表達式2(循環條件)」,則不做其它處理時便成為死循環。例如:

for( i=1; ; i++ ) sum=sum+i;
相當於:i=1;

while(1){

sum=sum+i;

i++;

}
4) 省略了「表達式3(循環變數增量)」,則不對循環控制變數進行操作,這時可在語句體中加入修改循環控制變數的語句。例如:

for( i=1; i<=100 ; ){

sum=sum+i;

i++;

}

5) 省略了「表達式1(循環變數賦初值)」和「表達式3(循環變數增量)」。例如:

for( ; i<=100 ; ){

sum=sum+i;

i++;

}
相當於:

while(i<=100)

{sum=sum+i;

i++;

}
6) 3個表達式都可以省略。例如:
for( ; ; ) 語句
相當於:
while(1) 語句
7) 表達式1可以是設置循環變數的初值的賦值表達式,也可以是其他表達式。例如:

for( sum=0; i<=100; i++ ) sum=sum+i;
8) 表達式1和表達式3可以是一個簡單表達式也可以是逗號表達式。

for( sum=0,i=1; i<=100; i++ ) sum=sum+i;
或:

for( i=0,j=100; i<=100; i++,j-- ) k=i+j;
9) 表達式2一般是關系表達式或邏輯表達式,但也可是數值表達式或字元表達式,只要其值非零,就執行循環體。例如:

for( i=0; (c=getchar())!=』\n』; i+=c );
又如:

for( ; (c=getchar())!=』\n』 ; )

printf("%c",c);

熱點內容
工行密碼器怎麼買東西 發布:2024-11-01 08:00:02 瀏覽:711
查找子串的演算法 發布:2024-11-01 07:58:25 瀏覽:214
最快學編程 發布:2024-11-01 07:30:56 瀏覽:527
買福克斯買哪個配置好 發布:2024-11-01 07:01:07 瀏覽:36
pip更新python庫 發布:2024-11-01 06:42:57 瀏覽:666
憶捷加密軟體 發布:2024-11-01 06:34:05 瀏覽:353
androidlistview事件沖突 發布:2024-11-01 06:23:14 瀏覽:858
哈靈麻將在安卓上叫什麼名字 發布:2024-11-01 06:01:47 瀏覽:220
大學生解壓拓展哪裡靠譜 發布:2024-11-01 05:59:20 瀏覽:854
編譯函數求長方形面積和體積 發布:2024-11-01 05:52:16 瀏覽:745