怎样用c语言数组来编2的100次方

作者&投稿:俟研 (若有异议请与网页底部的电邮联系)
怎样用数组的方法算2的一百次方?? C语言的~

比如用int的数组,每个int装4位(保证平方不会溢出);
然后把最低位赋1,其它的赋0;从2开始乘。
乘到低位大于9999了之后将万位移到下一个int的位置。以此类推。

写起来不难,就是有点费时间,需要的话给我留言。

#include
#include
#include

void mul2(char* bnum, int len)
{
char* tail = bnum+len-1;
int c=0;
for(;len--;--tail){
int v = 2*(*tail-'0');
*tail=c + (v%10) + '0';
c=v/10;
}
}

int main()
{
char* p;
int blen = 100;
int len = blen*log10(2.0)+1;
int i;
p = (char*)malloc(len+1);
for(i=0;i<len;i++){
p[i]='0';
}
p[len-1]='1';
p[len]='\0';
for(i=0;i<blen;i++){
mul2(p,len);
printf("2^(%d) = %s
",i+1,p);
}
free(p);
return 0;
}

int array[40] = {0};

array[0] = 1;

for(int i=1; i<=100; i++)
{
for(int j=0; j<39; j++)
{
array[j] *= 2;
array[j+1] = array[j]/10;
array[j] %= 10;
}
}

把array 按下标从高往低输出, 得到的就是2 的100 次方
前导零 没有用, 输出时自己判断 控制从何时开始输出

#include "stdio.h"
int main()
{ double i,t=1;
for(i=1;i<=100;i++)
t=t*2;
printf("%f",t);

}
因为2的100次方结果数据太大,超过了long int 表示的数据,所以采用了double类型。

int A(int a, int b)
{
int j = 1;
int i;
for(i=1;i<=b;i++)
{
j = j*a;
}
return j;
}

在这上面打的,没有编译试一下,有错的请包含。还有忽略一切错误检测代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100
#define LOG2 0.30102999566398

int main()
{
int i,j,cy,pos;
int *res;
res = (int*)malloc((int)(LOG2*N)+1);
memset(res,0,sizeof(res));
pos = 0;
res[pos] = 1;
for(i=1;i<=N;++i)
{
cy=0;
for(j=0;j<=pos;++j)
{
cy = res[j]*2+cy;
res[j] = cy%10000;
cy = cy/10000;
if(j==pos&&cy>0)
{
res[++pos]=cy;
break;
}
}
}
for(j=pos;j>=0;--j)
{
printf((j==pos?"%d":"%04d"),res[j]);
}
system("pause");
return 0;
}

main()
{
int i,sum;
for(i=1;i<=200;i++)
sum*=2;
printf("%d",sum);
}


如何用C语言编一个程序,输入一个二维数组,然后以一个矩阵的方式输出...
j < 3; j++){ printf("%d\\t", pArr[i][j]);if(j == 2){ printf("\\n");} } for(i=0; i<3; i++)p[i] = array[i];for(i=0; i<3; i++){ sum = 0;for(j=0; j<3; j++){ sum += p[i][j];} printf("第%d行的和是%d\\n", i+1, sum);} } ...

C语言 如何编写一个数组 使其能够读取任意数量的输入的元素
动态数组+realloc函数即可,例子:int *pn=(int *)malloc(5*sizeof(int)); printf("%p\\n",pn); for(i=0; i<5; i++) scanf("%d",&pn[i]); pn=(int *)realloc(pn,10*sizeof(int));

数组程序设计(用C语言写)
srand( (unsigned)time( NULL ) );\/*设置种子使每次执行随机函数产生数组不一样*\/ for(i=0;i<20;i++){ a[i]=rand();for(j=0;i<i;j++)if(a[i]==a[j])i--; } \/*数组排序*\/ for(i=0;i<20;i++)for(j=i+1;j<20;j++)if(a[i]>a[j]){t=a[i];a[i]=a[j...

C语言数组的应用
C语言数组的应用 C语言一维数组的定义和引用 (一) 维数组的界说和引证 在程序设计中,为了处置便利,把具有一样类型的若干变量按有序的办法组织起来。这些按序摆放的同类数据元素的调集称为数组。在C言语中,数组归于布局数据类型。一个数组能够分化为多个数组元素,这些数组元素能够是根本数据类型或是布局类型。因而...

C语言 用结构体类型数组编程实现输入5个学生的学号姓名平时成绩期中成 ...
include <stdio.h>#include <stdlib.h>#define ARRAY_LEN 100 \/*数组长度*\/typedef struct { int no; \/*学号*\/ char name[ARRAY_LEN]; \/*姓名*\/float score1; \/*平时成绩*\/float score2; \/*期中成绩*\/float score3; \/*期末成绩*\/float totalScore; \/*学期成绩*\/} student;\/*初...

C语言应用数组编程。
打印输出这种的效果,不对的话再微调修改下:include <stdio.h> include <stdlib.h> int main(){ int i = 0;\/\/存放行 int j = 0;\/\/存放列 double sum;\/\/存放对角线数据和 \/\/定义一个整型二维数组array并初始化 int array[5][5] = { {1,2,3,4,5},{6,7,8,9,10},{11,12,...

C语言 如何定义字符串数组
C语言字符串数组中的每一个元素均为指针,即有诸形如“ptr_array[i]”的指针。由于数组元素均为指针,因此ptr_array[i]是指第i+1个元素的指针。例:如二维指针数组的定义为:char *ptr_array[3]={{"asdx","qwer","fdsfaf"},{"44444","555","6666"},{"a78x","q3er","f2f"}};...

c语言编程题(数组)用数组这题怎么写?
则更新记录最小元素的下标k k=j; }\/\/如果最小元素的下标不是后面n-i+1的未排序序列的第一个元素,则需要交换第i个元素和后面找到的最小元素的位置 if(k != i) { tmp=array[k]; array[k]=array[i]; array[i]=tmp; } }}int main(){int arr[N];int n...

如何用c语言的数组来实现一个正弦函数
1、C语言中要编写sin函数,实质上要利用sin的泰勒公式,然后根据泰勒公式,将其中的每一项进行分解,最后用循环,累加计算出最终结果。2、下面用for循环实现sin的算法,程序代码如下:include<stdio.h>#include<math.h>void main(){ int i; float x,sum,a,b; \/\/sum代表和,a为分子,b为分母...

C语言编程:定义一个4行5列的二维整型数组,随机为每个元素赋值,找出其中...
先初始化随机数发生器,然后为二维整型数组赋值,赋值的时候,顺便就用打擂台的方法找出最小数,找到最小数以后就更新记录它的下标,循环结束的时候,输出下标和最小数的值。include <stdio.h> include <stdlib.h> include int main(){ int i,j,i0=0,j0=0,a[4][5];srand(time(0));for(...

南安市13312169638: 怎样用数组的方法算2的一百次方?? C语言的 -
表帜奥立: # include<stdio.h># include<string.h># include<malloc.h> void multiply(char* a,char* b,char* c) //其中a是乘数,b是被乘数,c是a与b的乘积 { int i,j,ca,cb,* s; ca=strlen(a); //计算a的长度 cb=strlen(b); //计算b的长度 s=(int*)malloc(sizeof(int)*(ca+cb)...

南安市13312169638: c语言,2的100次方怎么做 -
表帜奥立: 测试结果: 第1对亲密素数:[ 3, 5] 第2对亲密素数:[ 5, 7] 第3对亲密素数:[ 11, 13] 第4对亲密素数:[ 17, 19] 第5对亲密素数:[ 29, 31] 第6对亲密素数:[ 41, 43] 第7对亲密素数:[ 59, 61] 第8对亲密素数:[ 71, 73] 请按任意键继续. . .代码: #...

南安市13312169638: 编写程序,可以求出2的n次方值,这里的n是比较大的整数,比如100.请用数组来储存结果. c语言 -
表帜奥立: 2的n次方: #include #include void main() { int n; printf("请输入n的值:\n"); scanf("%d",&n); printf("2的%d次方是:%lf\n",n,pow(2,n)); } 2的阶乘: #include #include void main() { int i,s=1; for(i=1;i<=2;i++) s=s*i; printf("2的阶乘是:%d\n",s); }

南安市13312169638: 大侠 能把用c语言数组求2的100次方的源程序发给我吗?急用啊,明天就要...跪求啊 qq邮箱919515001 -
表帜奥立: fgetc读取文件,然后存到一个 字符串数组里; 然后判断两个'\n'见 是不是全是空格,如果全是空格,就不加行号,如果不全是,就按顺序加行号...大概是这个思路....需要具体代码或有疑问请追问

南安市13312169638: c语言编程数据太大无法输出怎么办,比如2的100次方 -
表帜奥立: 在任何一种语言中,精度和取值范围都是一对矛盾.我理解您的意思,这里说的是整型.在c中,整型有三类数据类型,char,short,int,每一类又有unsigned和signed,即无符号和有符号两种.在32位系统中,char占一个字节,short占两个字节...

南安市13312169638: 求一程序计算2的100次方(C++) -
表帜奥立: 2的100次方的数字很大,应该用串做:我做的代码如下:#include <IOSTREAM>#include <algorithm>#include <STRING> using namespace std; const MI=100; string operator*(const string& str,const int a); int main(int argc, char* argv[]) { string Str...

南安市13312169638: C语言程序问题:求2的100次方 -
表帜奥立: double 类型太小了. 2的100次方数太大.douuble存不下. 你用LONG试试,再不行就先计算2的50次方.或者再小. 你先算2的10次方,是1024,如果结果正确,说明你的程序没问题 2的100次方真是变态呢.

南安市13312169638: 2的100次方用C语言怎么求 -
表帜奥立: 使用 long double 类型可以计算 有效数字18~19的值

南安市13312169638: c语言中2的100次方是调用那个函数? -
表帜奥立: c语言中求指数函数可以调用pow()函数 #include<math.h> 但是2的100次方已经超过long int 数据能存放的最大数 会发生错误

南安市13312169638: 2的n次方用C语言怎么编写程序?? -
表帜奥立: #include <stdio.h> double power(int n); void main() { printf("%f %f %f",power(2),power(3),power(100));//测试 } double power(int n) //传递n ,默认n>=0 { double result = 1; while(n) { result = result * 2.0; //乘以2.0 注意不是2,否则计算要出错 n--; } return result; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网