c语言整数四则运算怎样用数组来运算超长的整数?

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
C语言数组加减运算结果
下载积分:2000
内容提示:C语言数组加减运算结果
文档格式:DOC|
浏览次数:22|
上传日期: 09:48:59|
文档星级:
该用户还上传了这些文档
C语言数组加减运算结果
官方公共微信C语言大作业 请设计一个算法完成两个超长正整数的加法.要求用数组和指针做的 最好能画流程图
s画扇姿匦8
两个超长,啥意思double
为您推荐:
其他类似问题
扫描下载二维码&&/&&&&/&&
下面的程序将会读入一个整数数组,然后使用冒泡排序法将数组内的元素正序(从小到大)排列。
关于冒泡排序请查看:
注意:下面的程序在 VC6.0 下编译不能通过,因为在 VC6.0 中数组长度不能为变量和不定值;请在 Linux 的 GCC 或 Window 的 MinGW 下编译。
笔者顺便推荐一款国产C语言开发神器 -- C-Free 5.0 -- 默认编译器是 MinGW,可以随意切换多个编译器,详情请查看:
#include &stdio.h&
#define NMAX 10
int getIntArray(int a[], int nmax, int sentinel);
void printIntArray(int a[], int n);
void bubbleSort(int a[], int n);
int main(void) {
int x[NMAX];
hmny = getIntArray(x, NMAX, 0);
if (hmny==0)
printf(&This is the empty array!\n&);
printf(&The array was: \n&);
printIntArray(x,hmny);
bubbleSort(x,hmny);
printf(&The sorted array is: \n&);
printIntArray(x,hmny);
// n 是数组 a 的元素个数;数组内的元素将会输出,5 个一行
void printIntArray(int a[], int n)
for (i=0; i&n; ){
printf(&\t%d &, a[i++]);
if (i%5==0)
printf(&\n&);
printf(&\n&);
// 最多读入 nmax 个整数并保存到数组 a,遇到特定值结束读取
int getIntArray(int a[], int nmax, int sentinel)
int n = 0;
printf(&Enter integer [%d to terminate] : &, sentinel);
scanf(&%d&, &temp);
if (temp==sentinel)
if (n==nmax)
printf(&array is full\n&);
}while (1);
// 该函数使用冒泡排序将数组 a 中前 n 个元素正序排列
void bubbleSort(int a[], int n)
int limit = n-1;
while (limit) {
lastChange = 0;
for (lcv=0;lcv&lcv++)
if (a[lcv]&a[lcv+1]) {
temp = a[lcv];
a[lcv] = a[lcv+1];
a[lcv+1] =
lastChange =
limit = lastC
可能的输出结果:
Enter integer [0 to terminate] : 1 45 232 56 343 12 3 0
The array was:
&&& 1&&&&& 45&&& 232&&& 56&&& 343
&&& 12&&& 3
The sorted array is:
&&& 1&&&&&&&& 3&&&&&& 12&&& 45&&& 56
&&& 232&&& 343
推荐文章 TOP10C语言利用数组计算超大整数的阶乘代码
0人收藏此代码,
C语言利用数组计算超大整数的阶乘代码
#include &stdio.h&
int main()
int a[9000]; //确保保存最终运算结果的数组足够大
int digit = 1; //位数
//阶乘的任一元素与临时结果的某位的乘积结果
int i, j, //carry:进位
printf(&please in put n:\n&);
scanf(&%d&,&n);
//将结果先初始化为1
for ( i=2; i&=n; i++ )
//开始阶乘,阶乘元素从2开始依次&登场&
//按最基本的乘法运算思想来考虑,将临时结果的每位与阶乘元素相乘
for( j=1, carry=0;
temp = a[j-1] * i + //相应阶乘中的一项与当前所得临时结果的某位相乘(加上进位)
a[j-1] = temp % 10; //更新临时结果的位上信息
carry = temp / 10; //看是否有进位
while(carry)
//如果有进位
a[++digit-1] = carry % 10; //新加一位,添加信息。位数增1
carry = carry / 10; //看还能不能进位
printf(&n ! = &);
//显示结果
for(j = j &=1;j--)
printf(&%d&,a[j-1]);
printf(&\n&);
//该代码片段来自于: /codes/cpp/8270
相关代码片段:
最新C/C++代码片段
合作网站:

我要回帖

更多关于 c语言数组运算 的文章

 

随机推荐