C语言,这个程序完全看不懂,谁能解释一下

C语言,这个程序完全看不懂,谁能解释一下,第1张

初始化f1和f2都为1。大循环,i从1到20

先输出初始化的f1和f2的值,输出为11

判断i是否被2整除,如果整除则换行,不整除则无 *** 作。第一轮i=1,无 *** 作。

把f1+f2赋给f1,也就是前两个月的值相加,赋给f1(注意现在f1=1+1=2)

再把f1+f2赋给f2,也就是刚才已经变换过的f1加上以前的f2,赋给f2(注意现在f2=2+1=3)

同理,第二轮,先输出上一轮变过了的f1,f2,输出为23。

再判断i是否被2整除。i此时为2,被2整除,所以现在的输出为1123(换行)。

之后都是循环。第三轮58(不换行),第四轮1321(换行)

总输出应为:

1123

581321

345589144

共十行

#include<stdioh>

int main()

{   chars[ ]="GFEDCBA";         //一个字符串s

    int  p=6;                   //p为6

while(s[p]!=‘D’)                //s[6]开始循环,即从A开始满足条件打印。接着是s[5]即B也满足,然后是s[4]即C也满足。然后是D不满足退出循环

{    printf("%c  ", s[p]);      //打印s[p]字符

p=p-1;     }                    //p减少1,即往前面移动

return 0;

}

输出是ABC,我看不懂程序意思,求每行注释。   

还有一题:

 main()

{  int n1,n2;                   //两个整数

scanf("%d",&n2);                //输入n2

while(n2!=0)                    //当n2不为0

{  n1=n2%10;                    //n1为n2的个位数字

n2=n2/10;                       //n2/10消除掉个位

printf("%d   ",n1);   }     }   //打印n1即n2的个位数字

                                //整个程序的含义就是将数字123打印成  3 2 1

给你提示一下吧,我希望能够帮助你自己理解它。

这个程序的意思是:把第1个单词中跟第1个字符相同的字符删除,把第2个单词中跟第2个字符相同的字符删除,把第3个单词中跟第3个字符相同的字符删除,把第4个单词中跟第4个字符相同的字符删除。

顺便说一下,这个程序在有的编译器环境下可能引起运行时内存错误。

#include <stdioh>

main()

{ int i, j;

char ch, p1, p2, s[4]={"four","hello","peak","apple"};

for(i = 0; i < 4; i++){

p1 = p2 = s[i]; //p1和p2指向第i个单词的开头

ch = (p1 + i);//ch表示第i个单词的第i个字符

while(p1 != '\0'){ //循环让p1从这个单词的开头逐步走到这个单词的末尾

if(p1 != ch) {//如果p1所指的字符跟ch不同,就通过p2从单词第一个位置开始放置

p2 = p1;

p2++;//然后让p2指向这个单词的下一个位置

}

p1++;

}

p2 = '\0';

}

for(i = 0; i < 4; i++)

printf("%s\n", s[i]);

}

一开始p2是指向s[i]里面的第一个字符的

通过给p2赋值就给s[ i ]这个单词里面的第一个字符赋新值了

然后p2++让p2指向这个单词的下一个字符位置

下次赋值就把第二个字符的内容改变了

如此如此

这个程序是读入四个用字符分隔的整数,然后计算出这四个整数的和并输出,他对要求用什么字符分隔并没有要求,也就是说,即使你输入1-2-3-4,程序也会给你输出10,他把读入的分隔字符全部丢弃了。所以中间如果用回车来分隔整数也是可以的,你也可以用4行来输入这四个整数的。

main()

   {

int i;//定义一个整型变量i

     for(i=3;i<10;i++) /循环输出3-10(不包括10),能被4整除的不被输出(即输出35679)/

         {

if(i%4==0)//判断能不能被4整除

                continue;//可以被整除则跳过此次循环,比如当i=4的时候,判断能被4整除了,则执行到\

//执行到continue的时候,将跳过接下来要执行的,直接到i=5的情况。(和break区别)

           else

                 printf(“%d,”,i);//当i不被4整除,则输出。

          }                            

}

//结果为:35679

//-----------------------------------------------------------

main()

         {  int x;

              x=3;//初始化x = 3

              do

              {  printf(“%d”,x--);//先输出X的值(3),再将X-1

                }while(!x); //X 不等于0,所以!x 等于0,即跳出循环                

          }

//结果为:3

//-----------------------------------------------------------------

main()

       { int a=8 , b=1;//定义并初始化a,b

a=a+b;//a = 9

b=ab;//b = 9

printf("%d,%d",a,b);    }

//结果为:9,9

//---------------------------------------------------------------------------

       fun(int a, int b)//定义一个函数,传入a,b两个参数(其实就是比较两个数的大小,把大的返回)

        { if(a>b) return (a);//如果a>b,就返回a

          Else  return (b);  }//否则(即b>=a),就返回b

        main()

       { int x=3,y=8,z=6,r;

          r=fun(fun(x,y),2z);//分两步,第一,比较x和y,得到xy中最大的(显然y比较大为8),第二,把x,y中最大的(y)和2Z比较(即8和26比较),显然2z比较大为12,所以r=12

          printf(“%d\n”,r);  }

//结果为:12

//------------------------------------------------------------------------

     main()

      { int n;

         For(n=3; n<=10; n++)

           { if(n%5= =0)break;//break和continue的区别来了,break是直接跳出循环,continue是只跳过这次玄幻,比如n=5的时候,正好可以被5整除等于0,则执行break;就直接跳出循环了,而continue,则还会执行n=6,n=7的情况

             Printf(“%d”,n); }            }

//结果为:34

程序的功能就是求一个字符串的长度啊

p=s这一句就是把字符串的首地址给p 通俗一点就是让p='g'

while(p != 0)//因为每个字符串的结束就是'\0'(码值是0)

{

}//最后循环完了之后指针指向goodbey这个字符串的最后一个也就是'/0'

然后减去首地址 就是字符串的长度

以上就是关于C语言,这个程序完全看不懂,谁能解释一下全部的内容,包括:C语言,这个程序完全看不懂,谁能解释一下、(入门级)C语言程序 看不懂,求详细讲解注释、程序看不懂怎么运行的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10121441.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存