c语言编程:计算100!要求是精确值。 大家帮帮忙了!

供稿:hz-xin.com     日期:2025-01-14
用C语言计算100!的精确值

这个问题很简单,就是一个循环
long double RE=1;
for(int i=1;i<=100;i++)
{
RE*=i;
}

最终RE里面的值就是100!.这个问题的关键就是要申请一个double型的变量,因为结果比较的大.

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为'
'.
      
2.程序源代码:
#include "stdio.h"
#include "conio.h"
main()
{
char c;
int letters=0,space=0,digit=0,others=0;
printf("please input some characters
");
while((c=getchar())!='
')
{
if(c>='a'&&c='A'&&c<='Z')
letters++;
else if(c==' ')
space++;
else if(c>='0'&&c<='9')
digit++;
else
others++;
}
printf("all in all:char=%d space=%d digit=%d others=%d
",letters,
space,digit,others);
getch();
}


八进制转换为十进制
1.程序分析:           
2.程序源代码:
#include "stdio.h"
#include "conio.h"
main()
{
char *p,s[6];int n;
p=s;
gets(p);
n=0;
while(*(p)!='\0')
{
n=n*8+*p-'0';
p++;
}
printf("%d",n);
getch();
}

给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供)
2.程序源代码:
#include "stdio.h"
#include "conio.h"
main( )
{
long a,b,c,d,e,x;
scanf("%ld",&x);
a=x/10000;/*分解出万位*/
b=x%10000/1000;/*分解出千位*/
c=x%1000/100;/*分解出百位*/
d=x%100/10;/*分解出十位*/
e=x%10;/*分解出个位*/
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld
",e,d,c,b,a);
else if (b!=0) printf("there are 4, %ld %ld %ld %ld
",e,d,c,b);
else if (c!=0) printf(" there are 3,%ld %ld %ld
",e,d,c);
else if (d!=0) printf("there are 2, %ld %ld
",e,d);
else if (e!=0) printf(" there are 1,%ld
",e);
getch();
}
大概的要用的的一些东西 都有了 你自己在这上面分析下,估计能做出来 你要做的东西了

main()
{long i,j,x,num=0;<br/> for(i=1;i<=100;i++)<br/> {x=1;<br/> for(j=1;j<=i;j++)x*=j;<br/> num+=x;<br/> }
printf("%ld",num);
getch();
}

你先看下这个
#include<stdio.h>
  int main()
  {
   int data[20000]={1,1,0}; //初始化,数组从1开始记数
   int num; //阶乘大小
   int digit=1; //每次阶乘得出结果的位数
   scanf("%d",&num); //输入你要计算的阶乘值
   for(int i=1;i<=num;i++)
   {
   for(int j=1;j<=digit;j++)//先做每一位与i的乘积放在一个数组空间中
   {
   data[j]*=i;
   }
   for(int j=1;j<=digit;j++)//调整个元素的值,使之在0--9之间
   {
   if(data[j]>9)
   {
   for(int k=1;k<=digit;k++)
   {
   if(data[digit]>9) //位数增加
   {
   digit++;
   }
   data[k+1]+=data[k]/10;//调整
   data[k]%=10;
   }
   }
   }
   }
   printf("%d!=",num);
   for(int j=digit;j>0;j--)
   {
   printf("%d",data[j]);
   }
   printf("\n");
   return 0;
  }

估计需要大整数了~~ 不过我记得有人用4行代码就实现了 google 一下吧 咱们计算机专业的遇到问题要上GOOGLE 然后再来发帖子~~

C语言编程实现从1到100的求 和
在C语言中可以通过定义一个累加器(一个变量)并结合for循环来实现计算1到100之和。具体的实现程序如下:double sum=0; \/\/ 定义累加器变量sum,并初始化为0 int i;for(i=1; i<=100; i++){ sum += i; \/\/ 等价于sum = sum + i; 即将累加的和保存在累加器sum中 } printf("%lf...

c语言编程:求整数1至100的累加值,但要求跳过所有个位为三的数
回答:#include <stdio.h> #include <stdlib.h> void main() { int i, sum; sum=0; for (i=0; i<=100; i++) { if (i%10!=3) sum=sum+i; } printf("%d\\n", sum); }

计算2+4+6+…+100的值(用C语言编程)
include <stdio.h> void main(){ int result = 0;for(int i = 2; i <= 100; i += 2){ result += i;} printf("%d", result);}

用c语言编程算1+2-3-4+5+6-7-8……-100
include<stdio>int main(){ int sum=0; for(int i=1;i<=25;i++) { sum=sum+(4*i-3)+(4*i-2)-(4*i-1)-4*i; } printf(sum); return 0;}你好,以上是我写好的代码!希望能帮到你!

用C语言编程:对1~100整数求和,并显示出来(要求用FOR循环)
include<stdio.h> void main(){ int i ,sum=0;for(i=0;i<=100;i++)sum+=i;printf("结果是:%d\\n",sum);}

c语言高精度计算 s=1-1\/2+1\/3-1\/4+...+1\/99-1\/100,精确到小数点后100...
个人觉得不是很难,怎么没人回答呢。include <stdio.h>\/* 表示需要精确的小数点位数 *\/#define N 100\/* 记录加法运算可能产生的进位,或减法运算可能产生的借位 *\/int CF = 0;\/* divider: 被除数 div: 除数 integer: 计算结果的整数部分 result: 计算结果的小数部分*\/void Div(int ...

用C语言编写一道程序计算100以内偶数的和
编写程序计算100以内偶数的和是一个常见的编程练习,可以帮助初学者熟悉基本的循环结构。当我们包括100时,100以内偶数的总和为2550;如果不包括100,则总和为2450。以下是一个简单的C语言程序实现,它利用for循环来完成计算任务:include int main(){ int sum=0;int i=0;for (i=0;i<=100;i+=2)...

怎样用C语言编程实现从1乘到100的结果?
100的阶乘已经是大数相乘了,在c语言中没有现成的数据型可以用,所以用数组模拟计算,以下是对楼上程序的解释 #include <stdio.h> define MAXN 1000 int a[MAXN],b[MAXN];void pwrite(int *a,int k,int c)\/\/将计算的结果数组[a]按每一位输出,k为所计算数字,i为计算所得位数,计算...

求1到100之和用C语言怎么编程
include <stdio.h> int main(){ int a,b;b=0;for(a=1;a<=100;a+=1)b=b+a;printf("sum = %d\\n",b);return 0;}

求100以内奇数之和编程
求100以内的奇数和,用C语言编程实现,首先明确100以内的奇数为1、3、5……97、99。编程目标是计算这些奇数的总和。实现步骤如下:定义变量i从1开始,每次增加2,直到i超过100为止,将每次累加i值,最后得到的sum即为奇数和。以下是具体代码实现:include int main() { int i, sum = 0;for (i ...