A. c語言如何三個數求和
是三個數求和:
inta,b,c,sum;
charc1,c2;
scanf("%d%c%d%c%d",&a,&c1,&b,&c2,&c);
if(c1=='+'&&c2=='+')
sum=a+b+c;
printf("%d+%d+%d=%d ",a,b,c,sum);
運行時,輸入
12+34+56回車
或
1+2+3回車
B. c語言 大數相加
c/c++中int和unsigned類型變數,都不能保存超過10位的整數,但有時我們需要計算位數非常長的整數或小數的加法。一般我們稱這種基本數據類型無法表示的整數為大整數。如何表示和存放大整數呢?基本的思想就是:用數組存放和表示大整數。一個數組元素,存放大整數中的一位。
現在假如我們要計算倆個200位數的加法。顯然,任何C/C++固有類型的變數都無法保存它。最直觀的想法是可以用一個字元串來保存它。字元串本質上就是一個字元數組,因此為了編程更方便,我們也可以用數組int an[200]來保存一個200 位的整數,讓an[0]存放個位數,an[1]存放十位數,an[2]存放百位數……那麼如何實現兩個大整數相加呢?方法很簡單,就是模擬小學生列豎式做加法,從個位開始逐位相加,超過或達到10 則進位。也就是說,用intan1[201]保存第一個數,用int an2[200]表示第二個數,然後逐位相加,相加的結果直接存放在an1 中。要注意處理進位。另外,an1 數組長度定為201,是因為兩個200 位整數相加,結果可能會有201 位。實際編程時,不一定要費心思去把數組大小定得正好合適,稍微開大點也無所謂,以免不小心沒有算準這個「正好合適」的數值,而導致數組小了,產生越界錯誤。
下面是具體程序:
#include<stdio.h>
#include<string.h>
#defineMAX_LEN200
intan1[MAX_LEN+10];
intan2[MAX_LEN+10];
charszLine1[MAX_LEN+10];
charszLine2[MAX_LEN+10];
intmain(void)
{
scanf("%s",szLine1);
scanf("%s",szLine2);
inti,j;
memset(an1,0,sizeof(an1));
memset(an2,0,sizeof(an2));
intnLen1=strlen(szLine1);
for(j=0,i=nLen1-1;i>=0;i--)
an1[j++]=szLine1[i]-'0';
intnLen2=strlen(szLine2);
for(j=0,i=nLen2-1;i>=0;i--)
an2[j++]=szLine2[i]-'0';
for(i=0;i<MAX_LEN;i++)
{an1[i]+=an2[i];//逐位相加
if(an1[i]>=10)
{//看是否要進位
an1[i]-=10;
an1[i+1]++;//進位
}
}
for(i=MAX_LEN;(i>=0)&&(an1[i]==0);i--);
if(i>=0)
for(;i>=0;i--)
printf("%d",an1[i]);
elseprintf("0");
return0;
}
C. 用c語言編程如何實現求和的程序代碼
1、首先把頭文件,main函數寫好#include<stdio.h> main(),如下圖所示。
D. c語言把數字字元串中的數字相加的程序
代碼如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char str[100];
char buf[10];
int i;
int n = 0;
bool flag = 0;
int j = 0;
//gets(str);
scanf("%s", str);
for (i = 0; i != strlen(str); ++ i)
{
if (str[i] >= '0' && str[i] <= '9')
{
buf[j] = str[i];
j++;
flag = 1;
}
else if (flag)
{
n += atoi(buf);
memset(buf,0,10);//清空緩存區
flag = 0;
j = 0;
}
}
printf("%s",buf);
printf("%d ", n);
}
(4)c語言數字相加問題擴展閱讀
(C語言)常見字元函數和字元串函數
1、strlen
功能:計算字元串長度,不包含』 』
返回值:返回字元串的字元數
說明:strlen() 函數計算的是字元串的實際長度,遇到第一個』 』結束;參數指向的字元串必須以 』 『結束。函數返回值一定是size_t ,是無符號的。如果你只定義沒有給它賦初值,這個結果是不定的,它會從首地址一直找下去,直到遇到』 』停止。
sizeof返回的是變數聲明後所佔的內存數,不是實際長度,此外sizeof不是函數,僅僅是一個操作符,strlen()是函數。
2、strcpy
功 能: 將參數src字元串拷貝至參數dest所指的地址
返回值: 返回參數dest的字元串起始地址
說明:源字元串必須以』 』結束。會將源字元串的』 』拷貝到目標空間。目標空間必須可變。如果參數dest所指的內存空間不夠大,可能會造成緩沖溢出的錯誤情況,在編寫程序時需特別留意,或者用strncpy()來取代。
E. c語言,實現任意多個數相加
#include<stdio.h>
intmain()
{
intn,s=0;
while(1)
{
scanf("%d",&n);
s+=n;
if(getchar()==' ')break;
}
printf("sum=%d ",s);
return0;
}
F. 用c語言實現10個數字相加
#include<stdio.h>
int main()
{
int a[10],sum,i;
for(i=0;i<10;i++)
{ scanf("%d",&a[i]);
sum+=a[i];
}
printf("這10個數的和為%d",sum);
return 0;
}
(6)c語言數字相加問題擴展閱讀:
數組:是有序的元素序列。 若將有限個類型相同的變數的集合命名,那麼這個名稱為數組名。組成數組的各個變數稱為數組的分量,也稱為數組的元素,有時也稱為下標變數。
在C語言中, 數組屬於構造數據類型。一個數組可以分解為多個數組元素,這些數組元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字元數組、指針數組、結構數組等各種類別。
特點:
1,數組是相同數據類型的元素的集合。
2,數組中的各元素的存儲是有先後順序的,它們在內存中按照這個先後順序連續存放在一起。
3,數組元素用整個數組的名字和它自己在數組中的順序位置來表示。例如,a[0]表示名字為a的數組中的第一個元素,a[1]代表數組a的第二個元素,以此類推。
G. C語言的兩個數相加怎麼寫
int a,b,c;
scanf("%d%d",&a,&b); //輸入a,b
c=a+b; //兩數相加給c
printf("%d",c); //輸出c