您的位置:

c语言整数加减,c语言整数加减法的实现

本文目录一览:

C语言中怎么实现两个超大整数的相加减乘除

#include string.h

#include stdio.h

#include stdlib.h

#define N 100

int main(int argc, char const *argv[])

{

char arr[N] = {};

gets(arr);

char brr[N] = {};

gets(brr);

int len1,len2,i = 0,j = 0;

len1 = strlen(arr);

len2 = strlen(brr);

int len = len1len2?len1:len2;

/*  c99之后数组初始化支持整型表达式,称为可变长数组,但按照c89的标准是不对的

int num1[len]; //将字符串转换成翻转的整型数组

int num2[len];

*/

int* num1 = (int*)malloc(len*sizeof(int));

int* num2 = (int*)malloc(len*sizeof(int));

for (i = 0; i len; i++)

{

num1[i] = ilen1 ? arr[len1-i-1]-'0':0;

}

for (j = 0; j len; j++)

{

num2[j] = jlen2 ? brr[len2-j-1]-'0':0;

}

//int sum[len]; //定义和数组

int* sum = (int*)malloc(len*sizeof(int));

int flag=0; //设进位符

for (i = 0; i len; i++)

{

sum[len-1-i] = (num1[i]+num2[i]+flag)%10;

flag = (num1[i]+num2[i]+flag)/10;

}

if (flag == 1) printf("1");   //如果最高位有进位 则输出一个1

for (i = 0; i len; i++)

{

printf("%d",sum[i]);

}

printf("\n");

free(num1);

free(num2);

free(sum);

num1 = NULL;

num2 = NULL;

sum = NULL;

return 0;

}

扩展资料:

gets()函数用法

gets是从标准输入设备读字符串函数。

函数原型:char*gets(char*str);

功能为:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。

注意:不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。使用时需要包含stdio.h头文件

参数

str为字符串指针,用来存放读取到的数据。

返回值

读入成功,返回与参数buffer相同的指针;读入过程中遇到EOF(End-of-File)或发生错误,返回NULL指针。所以在遇到返回值为NULL的情况,要用ferror或feof函数检查是发生错误还是遇到EOF。

C语言编程 100以内整数加减法

这对于初学者还真不简单;要产生真正的随机数,必须用时间函数初始化随机种子,还有相应提示等。你参考下下面的代码:

#includestdio.h

#includestdlib.h

#includetime.h

int main()

 int i,a[20],answer,score=0;

 srand(time(NULL));

 for(i=0;i20;i++)

  a[i]=rand()%90+10;//产生20个10到99间的随机数

 printf("请输入答案,共10道题:\n");

 for(i=0;i10;i+=2)

 {//取前10个数,组成5个加法题

  printf("%d+%d=",a[i],a[i+1]);

  scanf("%d",answer);

  if(a[i]+a[i+1]==answer)

   score+=10;//对了加10分

 }

 for(;i20;i+=2)

 {//取前10个数,组成5个加法题

  if(a[i]a[i+1])//保证不出现小的数减大的数

   printf("%d-%d=",a[i],a[i+1]);

  else

   printf("%d-%d=",a[i+1],a[i]);

  scanf("%d",answer);

  if(a[i]-a[i+1]==answer)

   score+=10;//对了加10分

 }

 switch(score){

 case 100:

  printf("酷毙了!!\n");break;

 case 80:

 case 90:

  printf("真棒!\n");break;

 case 60:

 case 70:

  printf("真不错哦!!!\n");break;

 default:

  printf("要加油哦!\n");

 }

 return 0;

}

输入两个整数,进行加减乘除四则运算的c语言程序怎么写啊,拜托了~

代码

#includestdio.h

int main()

{

int a,b;

scanf("%d %d",a,b);

printf("%d\t",a + b);

printf("%d\t",a - b);

printf("%d\t",a * b);

printf("%d\t",a / b);

return 0;

}

运行截图

分析

C语言中的加减乘除和数学中的加减乘除一样,不同在于符号的表示问题,乘号需要用“*”表示。除号需要用“/”表示。新手学习C语言,很容易把除号和取余好混淆,强调一下,取余号是“%”,百分号就是取余的意思。因此在输入两个整数以后,按照数学方法就可以直接输出结果,整数的输入用scanf()函数。

c语言程序设计:大整数的加减法

用rand()产生随机数,rand()会产生从0到一个很大的数,我记不清了,反正很大。如果想出现100以内的,就用rand()%100。你可以定义三个int型整数,两个表示加或者减的对象,另一个标示加或者减,因为只要出现两种情况之一,所以可以用rand()%2,这样只会有0,1两种情况来标示加或者减。下面的就很容易了inta,b,i,c;for(i=0;i10;i++){a=rand()%100;b=rand()%100;c=rand()%2;if(c==0)//标示加法{printf("%d+%d=%d\n",a,b,a+b);}else{printf("%d-%d=%d\n",a,b,a-b);}}大致就这样,希望给你点帮助