当前位置:首页 » 编程语言 » 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);

热点内容
php建网站 发布:2024-11-01 10:07:37 浏览:566
利用旧电脑搭建自己的私有云服务器 发布:2024-11-01 10:07:24 浏览:608
dl388p服务器怎么换硬盘 发布:2024-11-01 10:02:12 浏览:254
云服务器可以打游戏嘛 发布:2024-11-01 09:49:49 浏览:582
编程聚会 发布:2024-11-01 09:38:51 浏览:898
7z压缩密码 发布:2024-11-01 09:38:50 浏览:660
sql字符串去掉空格 发布:2024-11-01 09:27:27 浏览:17
c语言学生通讯录 发布:2024-11-01 09:26:22 浏览:286
门线告警算法 发布:2024-11-01 09:24:58 浏览:522
当乐网源码 发布:2024-11-01 09:08:08 浏览:226