❶ 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回車
❷ c語言如何用循環語句實現多個數相加
用 i+=j ;i保持多個數的累加結果,j可以通過循環給不一樣的數
❸ c語言如何實現多對大數相加
思路:
1.輸入xxxx+xxxxxx,已『+』分割成兩個子串。
2.逆序兩個子串,末位變成首位對齊,按位相加,大於10則向後位進一。
3.需要考慮到兩個數長度不同的情況。
4.再把最後的結果逆序輸出,就得到了最終正向相加的結果。
思路實現代碼如下(在vc6.0中編譯通過):
#include<stdio.h>
#include<string.h>
voidreverse(char*s,intlen);
char*addLargeNumber(char*s1,char*s2);
intmain(intargc,charconst*argv[])
{
charstr[100];
intlen[10];//截取的每個子串的長度
scanf("%s",str);
char*sep="+-*/";
char*p=strtok(str,sep);
char*s=p;
char*k=p;
len[0]=strlen(p);
reverse(p,len[0]);
puts(p);
while(1)
{
s=strtok(NULL,sep);
if(s==NULL)
{
break;
}
len[1]=strlen(s);
reverse(s,len[1]);
puts(s);
k=s;//
}
printf("accesstoaddLargeNumber ");
p=addLargeNumber(p,k);
len[2]=strlen(p);
reverse(p,len[2]);
puts(p);
return0;
}
//反轉一個字元串
voidreverse(char*s,intlen)
{
chartemp;
inti;
for(i=0;i<len/2;i++)
{
temp=s[i];
s[i]=s[len-1-i];
s[len-1-i]=temp;
}
}
//接收兩個字元串,把長度小的加到長度大的串上,返回相加後的串
char*addLargeNumber(char*s1,char*s2)
{
char*p=s1;
char*q=s2;
chark;
inti;
printf("子串1的長度=%lu子串2的長度=%lu ",strlen(p),strlen(q));
intlen=strlen(q);
//確保p指向長度較長的串。確保len的值為較小的串的長度。
if(strlen(s1)<strlen(s2))
{
len=strlen(p);
q=s2;
p=s1;
}
intdifflen=strlen(p)-strlen(q);//兩個子串長度的差值。
//printf("len=%ddifflen=%d ",len,difflen);
for(i=0;i<len;++i)
{
inta=p[i]+q[i]-96;
//printf("a=%d ",a);
if(a>=10)
{
k=a-10+48;
p[i+1]+=1;
}
else
{
k=a+48;
}
//printf("k=%c ",k);
p[i]=k;
printf("p[%d]=%c ",i,p[i]);
}
//解決較長串後一位如果被進位的情況。例如:1379+128(假設兩個已逆序的串)或者15999+148
for(i=0;i<difflen;i++)
{
if(p[len+i]==58)
{
p[len+i]-=10;
if(i==difflen-1)
{//當i指向最後一個有效數字時,並且當前位是『:』,則將其後一位賦為結束符
p[len+i+1]=49;//這種是賦值符號,是將'1'賦給p[i]。對比下面的運算符
p[len+difflen+1]=0;
}
else
{
p[len+i+1]+=1;//這種是運算符,是將p[i]的ASCII碼加1.
}
printf("p[%d]=%c ",len+i,p[len+i]);
}
else
{
break;
}
}
printf("相加之後的串長度=%lu ",strlen(p));
puts(p);
returnp;
}
❹ c語言怎麼編譯兩數相加
int a,b;
char c1,c2;
int sum; //求和
scanf("%d%c%d%c",&a,%c1,&b,&c2);
if(c1=='+'&&c2=='=')
sum=a+b;
else
sum=0;
printf("%d",sum);
或者
%# //我記得scanf以前有跳過某種類型的變數方法,不知道是不是這個。
不過我推薦我第一種方法,不是+和=不能算sum值
❺ 怎樣實現C語言 連續輸入的幾個數(同一數組)相加啊
#include<stdio.h>
intmain()
{
inta[100],n,i,s=0;
printf("全班人數:");
scanf("%d",&n);
printf("每人成績:");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
s+=a[i];
}
printf("全班總分:%d ",s);
system("pause");
return0;
}
❻ c語言,實現任意多個數相加
#include<stdio.h>
intmain()
{
intn,s=0;
while(1)
{
scanf("%d",&n);
s+=n;
if(getchar()==' ')break;
}
printf("sum=%d ",s);
return0;
}
❼ 怎麼把得出來的數相加 C語言
1、你這個循環裡面的z = x + y ; 這一條不對,這樣總是得到的是循環最後相加的一個結果,而不是累加的結果
2、改成 z += x + y; 這樣就是累加了
3、 這個的意思就是 z = z + x + y;所以自己體會吧。
❽ C語言中怎麼實現多個數的加法 求大神解決,謝謝
#define _CRT_SECURE_NO_DEPRECATE//這行是在VC2013要用scanf函數時候要寫的,其他環境無視
int main()
{
double sum = 0, a;
scanf("%lf", &a);//先輸入一個a
while (a != 0)//判斷a是否=0,等於0就不做了,這里有人喜歡用do-while但如果有測試數據第一組就是0會比較奇葩
{
sum += a;
scanf("%lf", &a);//在輸入一次判斷下面結果的
}
printf("%lf\n", sum);
return 0;
} 還有下面這種可以少用一次scanf
int main()
{
double sum = 0, a;
while (scanf("%lf",&a)&&a!=0)
{
sum += a;
}
printf("%lf\n", sum);
return 0;
}
❾ 用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;
}
(9)c語言怎麼將幾個數相加擴展閱讀:
數組:是有序的元素序列。 若將有限個類型相同的變數的集合命名,那麼這個名稱為數組名。組成數組的各個變數稱為數組的分量,也稱為數組的元素,有時也稱為下標變數。
在C語言中, 數組屬於構造數據類型。一個數組可以分解為多個數組元素,這些數組元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字元數組、指針數組、結構數組等各種類別。
特點:
1,數組是相同數據類型的元素的集合。
2,數組中的各元素的存儲是有先後順序的,它們在內存中按照這個先後順序連續存放在一起。
3,數組元素用整個數組的名字和它自己在數組中的順序位置來表示。例如,a[0]表示名字為a的數組中的第一個元素,a[1]代表數組a的第二個元素,以此類推。
❿ C語言中求N個數據的的和
思路:直接定義兩個變數n和sum,n用於接受鍵盤輸入,sum用於存儲累加和,每次輸入並累加求和。
參考代碼:
#include"stdio.h"
#defineN10//宏定義N的值
intmain()
{
intn,i,sum=0;
for(i=0;i<N;i++){
scanf("%d",&n);
sum+=n;
}
printf("求和為:%d ",sum);
}
/*
運行結果:輸入N個數求和
8734192056
求和為:45
*/