c语言编写程序:输入两个数a,b,求输出他们的和。(a,b可能为大于100亿的数)
发布网友
发布时间:2022-05-26 14:26
我来回答
共3个回答
热心网友
时间:2023-10-21 23:13
#include "stdio.h"
void main()
{
long double a = 0;
long double b = 0;
printf("----------本程序用于计算两数之和,请根据提示输入两个数--------\n");
printf("请输入a:");
scanf("%Lf",&a);
getchar();
printf("请输入b:");
scanf("%Lf",&b);
printf("%Lf+%Lf=%Lf",a,b,a+b);
}
/*
说明:
C语言里对float类型数据的表示范围为-3.4*10^38~+3.4*10^38。double为-1.7*10^-308~1.7*10^308,long double为-1.2*10^-4932~1.2*10^4932.
这里使用long double已经够用了也可以解决两个最大的double加起来得到的值超过原有的范围了。
当然,这里你也不能输入两个最大的long double来相加,不然结果也会超过范围的。
关于数据类型输入输出格式的问题。
%hi 代表 short,
%i 代表 int,
%li 代表 long,
%f 代表 float,
%lf 代表 double,
%Lf 代表 long double,
%c 代表 char (或 %i 表示输入为一个数字)
%s 代表 string (char * or char[])
需要注意一下,以免强制类型转换时可能会发生溢出该数据类型范围。
*/
热心网友
时间:2023-10-21 23:14
#include<stdio.h>
long add(){long a,long b){
return a+b;
}
int main(){
int a=100000000;
int b=200000001;
printf("%ld\n",add(a,b));
return 0;
}
热心网友
时间:2023-10-21 23:14
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
char a[][10]={"zero","one","two","three","four","five","six","seven","eight","nine"};
int tra(char num[]){
int i;
for(i=0;i<10;i++){
if(strcmp(num,a[i])==0)
return i;
}
}
int main()
{
int A,B;
char num[10];
while(1){
A=B=0;
while(scanf("%s",num)&&strcmp(num,"+")!=0){
A=10*A+tra(num);
}
while(scanf("%s",num)&&strcmp(num,"=")!=0){
B=10*B+tra(num);
}
if(A+B>0){
printf("%d\n",A+B);
}
else {
break;
}
}
return 0;
}