顺序表数组——连续存储单元的应用
2018-02-10 11:32
316 查看
顺序表——数组:通过连续的存储单元来实现存储的数据集合
要素:首地址,长度
例一:利用数组输出13^100
分析:长整型存储单元大小为4字节,最大可存储的数值为2147483647,显然13^100次方超出最大值,会产生溢出。
考虑利用数组进行存储,一个单元只存储一个数字(0~9)。
设数组a
(N为足够大的数字),a[N-1]=1
k=a[N-1]*13; a[N-1]=k%10; a[N-2]=k/10;
每一次乘以13,相当于将数组中的每一个元素乘以13并进行进位求和#include<stdio.h>
int main()
{
int a
,k,s,cp,i,j;\\N为足够大的整数
a[N-1]=1;
s=N-2;\\设置岗哨,永远在第一个数字的前面
for(i=0;i<100;i++){
j=N-1;
cp=0;
while(j>s){
k=a[j]*13+cp;
a[j--]=k%10;
cp=k/10;
}
while(cp){
a[s--]=cp%10;
cp/=10;
}
for(i=s+1;i<N;i++)
printf("%d\t",a[i]);
}
}
例二:任意输入两个超大整数求和并输出结果
分析:利用字符串将百位整数输入,利用数组进行处理并输出#include<stdio.h>
#include<string.h>
int main()
{
char s1[100],s2[100];
int r[100],i,k,cp,x;
cp=0;
printf("请输入第一个整数:");
gets(s1);
printf("请输入第二个整数:");
gets(s2);
i=strlen(s1)-1;
j=strlen(s2)-1;
k=99;
while(i>-1||j>-1){
if(i>-1&&j>-1)
x=s1[i]-'0'+s2[j]-'0'+cp;
else if(i>-1)
x=s1[i]-'0'+cp;
要素:首地址,长度
例一:利用数组输出13^100
分析:长整型存储单元大小为4字节,最大可存储的数值为2147483647,显然13^100次方超出最大值,会产生溢出。
考虑利用数组进行存储,一个单元只存储一个数字(0~9)。
设数组a
(N为足够大的数字),a[N-1]=1
k=a[N-1]*13; a[N-1]=k%10; a[N-2]=k/10;
每一次乘以13,相当于将数组中的每一个元素乘以13并进行进位求和#include<stdio.h>
int main()
{
int a
,k,s,cp,i,j;\\N为足够大的整数
a[N-1]=1;
s=N-2;\\设置岗哨,永远在第一个数字的前面
for(i=0;i<100;i++){
j=N-1;
cp=0;
while(j>s){
k=a[j]*13+cp;
a[j--]=k%10;
cp=k/10;
}
while(cp){
a[s--]=cp%10;
cp/=10;
}
for(i=s+1;i<N;i++)
printf("%d\t",a[i]);
}
}
例二:任意输入两个超大整数求和并输出结果
分析:利用字符串将百位整数输入,利用数组进行处理并输出#include<stdio.h>
#include<string.h>
int main()
{
char s1[100],s2[100];
int r[100],i,k,cp,x;
cp=0;
printf("请输入第一个整数:");
gets(s1);
printf("请输入第二个整数:");
gets(s2);
i=strlen(s1)-1;
j=strlen(s2)-1;
k=99;
while(i>-1||j>-1){
if(i>-1&&j>-1)
x=s1[i]-'0'+s2[j]-'0'+cp;
else if(i>-1)
x=s1[i]-'0'+cp;
else if(j>-1) x=s2[j]-'0'+cp; r[k]=x%10; cp=x/10; i--; k--; j--; } if(cp) r[k--]=cp; for(k=k+1;k<N;k++) printf("%d",r[k]); }
相关文章推荐
- C++ 单链表基本操作分析与实现 链表 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结
- 函数及数组的简单应用---存储成绩
- 数据结构---数组【连续存储】
- 郝斌数据结构连续存储数组的算法演示
- 二叉树数组顺序存储与遍历
- 将一个数组中数据按相反的顺序存储
- 数据结构例程——线性表顺序存储的应用
- [SDUT](1130)数据结构上机测试1:顺序表的应用 ---顺序存储(线性表)
- 数据结构之线性表——链表的顺序存储(数组描述)
- 申请n个连续字符存储单元,释放已分配的存储单元
- 用数组实现堆栈顺序存储
- C语言实现顺序存储(数组)
- 数组的基础应用 查找/添加/删除/字符串按顺序插入
- 郝斌数据结构连续存储数组的算法演示
- 数据结构例程——线性表顺序存储的应用
- 二叉树用数组顺序存储(完全二叉树)并实现三种遍历,代码详解!!!
- 数组的顺序存储和实现
- 将一个数组中的数据按相反的顺序存储(将数组中的数据逆序输出)
- 连续几个数组在内存中的存储地址
- 数据结构 12 连续存储数组的算法演示