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