ch8_9.c

来自「C语言程序设计上机指导与练习 冶金工业出版社 刘怀亮」· C语言 代码 · 共 47 行

C
47
字号
/*CH8_9*/
/*高精度运算*/
#include<stdio.h>
void main()
{
	int out[103]; 					/* 计算后的数据*/
	char in[101]; 					/* 读入数据*/
	int len;     						/* 读入数据的长度*/
	int i,c,temp;  					/* 循环控制变量和临时变量定义,c是进位*/
	for(i=103;i>-1;i--)
        	out[i]=0;     				/* 初始化*/
	scanf("%s",in);      				/* 读入数据*/
	while(!(in[0]=='0'&&in[1]=='\0')) 	/*  以一个"0"表示输入结束  */
	{
        /* 每读入一个数据处理一次*/
		len=0;
		while(len<101&&in[len]!='\0')len++;  /* 计算数据长度*/
		i=102;             				/* 从低位开始处理*/
           len--;
		while(len>-1)
		{
			out[i]+=in[len]-'0';   	/* 计算相加的值,其中减'0'是与整型转换*/
			len--;
            i--;
		}
		/* 计算进位,使整型数组中的元素保持在0-9之间*/
    	c=0; 
		for(i=102;i>=0;i--)
		{
                temp=out[i]+c;
			out[i]=temp%10;
                c=temp/10;
		}
		scanf("%s",in);  				/* 读入下一个数据*/
	}/*while()*/
	/* 输入完成首先统计整型数组中从下标为0开始有多少个元素是0 */
	i=0;
	while(out[i]==0) i++;				/* 到第1个不是0时结束*/
	/* 因为输出的数最高位不能是0*/
	for(;i<103;i++)
		printf("%d",out[i]);			/* 输出结果*/
	printf("\n");
}/*main()*/



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?