c语言 计算过程 怎么计算的

作者&投稿:员希 (若有异议请与网页底部的电邮联系)
C语言中计算N!的方法~

晕这个就是小学的长乘法,这个是用数组来存储的大数阶乘:

#include

int main()
{
int n = 1;
scanf("%d",&n);
int a[20000];
int carry;
int i;
int digit = 1; // digit记录的是当前的值的位数
a[0] = 1; // 初始化第1位为1
int temp;
for(i = 2; i <= n; ++i) { // 从2开始乘
carry = 0;
// 这个循环分别用i乘以当前积的每一位
for(int j = 1; j <= digit; ++j) {
temp = a[j-1] * i + carry; // 累加进位
a[j-1] = temp % 10; // 收缩
carry = temp / 10; // 记录进位
}
while(carry) { // carry不为0则表示进出了新的位数
a[++digit-1] = carry % 10; // 依次进位直到carry为0
carry /= 10;
}
}
// 是倒过来存的,所以输出也要倒过来
for(i = digit; i >=1; --i)
printf("%d",a[i-1]);
printf("
");
n++;
return 0;
}


看你的样子,你们来是应该不会叫你编高精度的吧,写个一般的可以了:
#include

int main()
{
int fac, i;
int n;
scanf("%d", &n); // 输入n
// 计算fac = 1*2*...*n
for(fac = 1, i = 2; i <= n; ++i)
fac *= i;
printf("%d", fac);
return 0;
}

%和 / 是同级的,一个级别的还有 *。 同级运算符从左自右顺序执行。 所以式子运算过程为: (a%1000)/10 结果是: a对1000取模(余数)在对10求商,结果是一个整数(嘿嘿,跟1楼的不同)。 3125%1000/10 = (3125%1000)/10 = 125 / 10 = 12; (用下1楼的例子)

28:^ 表示按位异或运算,比如:0^1=1,0^0=0,1^1=0,值不相同为1(如果为十进制数将其转化为二进制,下同);& 表示按位与运算,比如:0&0=0,0&1=0,1&1=1,都为1结果才是1;~ 表示求反运算(单目运算符),比如:~(0000000000000011),结果为:1111111111111100;| 表示按位或运算,比如:0|0=0,0|1=1,1|1=1,只要有1结果就为1;这个题答案是A(自己动手算)。

29:同上,答案是D。

第一题选A,第二题不知道


锡林浩特市18254017735: C语言程序的算法怎么算 -
佟崔今达: 一般程序有3种结构,顺序、选择、循环. 顺序嘛就不用说了,选择用于有条件的情况,例如成绩<60,评级为'D',60<成绩<70评级为'C'... 循环就是用于重复做某样计算,就如同你的问题,累加(譬如从1+2...+100)实际上就是循环的典型也是最基本应用. int i,sum=0; for(i=1;i<=100;i++)sum = sum +i;

锡林浩特市18254017735: c语言中的计算过程 -
佟崔今达: #include <stdio.h>main (){int i=1,j=3;printf("%d,",i++); // 输出1,i=2{int i=0; // 内部定义的另一个ii+=j*2; // i = 0 + 3*2 = 6printf("%d,%d,",i,j); // 输出6,3} // 出这个括号局部定义的i被销毁,这个i=6printf("%d,%d\n",i,j); // 输出2,3}

锡林浩特市18254017735: c语言怎么进行算术运算 -
佟崔今达: #include "stdio.h" void main() { int a,b,c; scanf("%d%d",&a,&b); c=a+b; printf("%d\n",c); getch(); }具体如下: 1、简介C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译、处理低级存储...

锡林浩特市18254017735: c语言,在多种运算符的表达式中,运算流程是怎么样的? -
佟崔今达: 优先级1-15,同2113级按结合方向1.最高级运算符(左结合): []().->2.单目运算符 (右结合): - (负号)~++--* (按地址取值)& (取地址)!(type) (强制类型转换,如(int)变量名,或许type(变量名) 会更好看)sizeof3.算术运...

锡林浩特市18254017735: C语言 计算机运算过程
佟崔今达: 首先从键盘输入a,b,之后从a开始计算,如果i是偶数则进行累加,只到i=b停止计算.最后输出sum.之后还调用了 getch();函数,因为你没有给出这个函数的函数体,所以我没有办法帮你分析getch();函数做了什么事情.for语句和if语句中的一组花括号是可以省略的...

锡林浩特市18254017735: C语言 9&5运算过程 -
佟崔今达: 9和5转为2进制分别是: 00001001 00000101 按位与操作就是每一位同为1才为1否则为0,计算结果为: 00000001 转为10进制就是1了.

锡林浩特市18254017735: C语言求运算过程 -
佟崔今达: 01111这样的(凡是以0开头的数字序列)都是8进制 %d 表示用十进制输出x,017表示的是十进制的15,十六进制的11,所以输出15 %o 表示用八进制输出x,还是17 %#o 加个#表示显示数字带进制的表示方法 ,017 %x 十六进制是一个道理

锡林浩特市18254017735: 求C语言程序计算过程 -
佟崔今达: 答案是10,109,1(其实这里是10,109,1因为你没换行,我那样写是更清楚) 先给你说++或者--的意思,在前的话,如:++i,就是先自加再运算;在后的话,如:x--,就是先运算再自减.第一次循环:条件成立,x--就是输出x,再x=x-1,再输出y就是10,10,之后x=9,y=++i=0+1=1;第二次循环:条件成立,输出x,就是9,输出y就是1.第三次循环条件x>8不成立,所以循环结束.

锡林浩特市18254017735: c语言的计算过程?
佟崔今达: 结果是0235不是235; do while();的用法食先运算后判断, 第一次运算时,k=5;case后的常量值没有与5相等的,所以n=0,运算后k=4;判断k>0&&n<5是成立的,成立执行第二次, 第二次运算时,k=4,case后的常量值有与4相等的,所以,n...

锡林浩特市18254017735: C语言 运算的顺序 -
佟崔今达: 1、先说运算顺序,是从上到下,一句一句的算的. 从4行开始,赋值a1.b6.c3. 计算5行,q=a+b+c=1+6+3=10 计算6行,a++,a=a+1=2 计算7行,++b,b=b+1=7 计算8行,z=a+b+c=2+7+3=12 执行9行,打印zabq分别是12.2.7.10 注意第9行代码有错误,双引号内的 z=……q=……a=……b=……顺序不对 应该是 z=……a=……b=……q=…… 2、asc码既能用八进制,也能用十进制表示. 只是在printf语句中,由转义符反斜杠"\"引导的asc码,必须用八进制数字表示.

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