请问一下C语言这道题怎么做?

C语言这道题怎么做~

#include
int main()
{
int n, i, sum;
i=1;
sum=0;
printf("请输入n的值:");
scanf("%d", &n);
while(n < 1){
printf("请重新输入n的值:");
scanf("%d", &n); }
while(i <= n){ sum += i; i++; }
printf("结果是:%d", sum);
return 0;
}

A和B都是错的. A p1是指针. p1-p2是一个常数. 所以 p1+(p1-p2)一样是指针. 赋值为20, 这个是错的. 正确方式为*(p1+(p1-p2))=20 B p1+2-p2 这里的p1-p2是常数, 再加上2还是常数. 对齐取值, 为非法操作.

#include<stdio.h>
main(){
    int n,i=1;
    long js=1;
    scanf("%d",&n);
    if(n>=0 && n<=12){
        do{
            js*=i;
            i++;
        }while(i<=n);
        printf("%ld
",js);
    }
    else{
        printf("shuruwuxiao
");
    }
}

 不解释



#include <stdio.h>

long long f1 (int n)
{
long long sum = 1;
for (int i=1;i<=n;i++)
{
sum*=i;
}
return sum;
}

long long f2 (int n)
{
long long sum =1;
int i=1;
do
{
sum*=i;
i++;
}while(i<=n);
return sum;
}

int main()
{
int n;
scanf("%d",&n);
printf("%lld
",f1(n));
}

20! long long是存不下的,可以采用数组的形式计算

int sum[10000];一位存一位,或者一位存4位,这样就可以求任意数的阶乘了



源程序在哪里。。
要不我给你个递归的,你自己改?。。
已调试。

#include <stdio.h>

int factorial(int n)
{
return (n == 1)?n:factorial(n-1)*n;
}

int main(void)
{
int n,fac;

printf("Please input the value of n:");
scanf("%d",&n);

fac = factorial(n);
printf("The result is:%d\n",fac);

return 0;
}

最下面说要用for do..while改写源程序,
递归版的给你了,不贴源程序就自己改吧。

c语言,请问这题做的过程该是什么样?
答:进行下一个循环下标值变为2,ch[2]的值为a,不符合循环条件,循环退出 所以最后s的值就是1 说一个技巧有助你日后遇到这种类似题目时方便理解 很简单,只需要在循环内部添加一个printf语句,把变量输出就能很直观很简单地理解题目的过程了 比如这题可以在循环内加一个printf("ch[i]=%c s=%d\n",...

请问这道C语言题怎么做?
答:当k=19时,while(i=18)执行循环,执行k-=3;后k=16,if和else if都不执行,执行i++;后i=19。当k=16时,while(i=15)执行循环,执行k-=3;后k=13,if和else if都不执行,执行i++;后i=16。当k=13时,while(i=12)执行循环,执行k-=3;后k=10,执行if,执行i++;后i=13,执行...

请问这道c语言题咋做,24题讲解一下...谢谢
答:由while那句可知:本程序按单个字符扫描。由输入为2743可知:总共循环4次。到最后的回车程序停止。=== 第1次循环,输入的c为'2'。switch的判别值为0,,跳到case 0。说明:由于c语言中switch语句的特点case后面没有break的话会继续执行后面的case,所以本次循环依次执行case 0,1,2,直到遇见break才...

这道C语言的题怎么做?
答:对于这个题目而言,主要是考查if~else函数的匹配使用情况。这个知识点就一定要记住:if总是与在它前面的、离它最近的、没有与别的if匹配的else匹配。有多层if语句的,一定要从最里层的if与else开始匹配。所以整个匹配形式如图所示:那么我们分析的时候,从最外层的if开始,if(a=b+c),其中a=b+c是...

这道c语言怎么做,解析看不懂,谁能详细说一下
答:2、gets()函数的用法和scanf类似,都是赋值。gets(A)的意思是把整个字符串赋值给A,又因为前面将Fig flower is red 的前七位赋值给了b,所以从第八位开始赋值:wer空格is空格red.3、所以答案就是:A Fig flower is red.The sky is blue.ps:另外我觉得这道题有错才对,因为前面并没有定义过...

这道题怎么做,c语言,求过程
答:int a = 1,b =2,c=3;第一次循环:a<b<c,先判断a<b,值为1(真),然后判断1<c,值为1(真),整个a<b<c的值为1(真),执行while循环,将a和b的值调换,c减1。此时a=2,b=1,c=2 第二次循环:a<b<c,先判断a<b,值为0(假),然后判断0<c,值为1(真),整个a<b<c的...

这道C语言怎么做呀?
答:程序代码是有问题的,修正如下:include <stdio.h> int main() { int j,a[]={1,3,5,7,9,11,13,15},*p=a+5;for(j=4;j>0;j--) { switch(j){ case 1:case 2:printf("%d",*p);break;case 3:printf("%d",*(--p));case 4:printf("%d",*(--p));} } return 0;} ...

c语言这道题怎么做
答:我写这个,修改常量可以实现任意长度数组间任意长度降序排列。include <stdio.h>#define maxlen 10//数组总长度#define midlen 8//中间需要排序的长度,修改时确保midlen小于等于maxlen 并且 maxlen-midlen为偶数或0int main(){ int a[maxlen]={3,6,1,7,8,4,9,5,10,2},i,*pb=&a[(...

这道C语言编程题怎么做啊
答:Description 已知线性表中元素为整数,且按照升序排列。编写算法实现在线性表中查找值为x的元素,如果查找成功,返回1;否则,返回2,并且把x插入到正确的位置,使线性表仍按升序排列。依次输出调用查找插入算法后的线性表中的元素。提示:存储结构采用代表头结点的循环单链表,结点结构如下:typedef struct ...

请问一下C语言这道题怎么做?
答:include<stdio.h>main(){ int n,i=1; long js=1; scanf("%d",&n); if(n>=0 && n<=12){ do{ js*=i; i++; }while(i<=n); printf("%ld\n",js); } else{ printf("shuruwuxiao\n"); }} 不解释 ...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网