为了账号安全,请及时绑定邮箱和手机立即绑定
  • printf("小明现在在慕课网上学习IT技术"); 其实不用加%s,加上不过是标准而已!
    查看全部
  • 一开始我的思路就错了。我将目光放在了图形上,先考虑中间的星。实际上,按照计算机理解的顺序,计算机是从左到右、从上到下理解的,也是这样排布的。所以思考时应该也是这样考虑。 另,有一行空格被我彻底忽略了。 星之后的空格是不必考虑的,这是从左至右自然形成的。 答案中的子循环是先完成第一个再进行第二个的循环。 j、k不是代表空格和星星的个数,而是为了确定位置。j=i即j=1,由j++,j逐渐变为2、3、4。在这里,重点不是j变为了什么,而是j一共变为了几个数字。显然,在i=1的父循环下,j共变为了四个数字,因此为空格占据了四个位置。至此,第一子循环结束,第二子循环开始。由于第二子循环并未换行,因此接着空格之后进行。答案中令k=0;k<2*i-1,其实也可以是k=1;k<2*i-1,应是同样的效果。 答案的点睛之处在于令j=i,因为每开始一个父循环,i便增大1.无形之中j也增大1,由j所确定的空格的位数变少了一位。 其实题目的解法应该不止一种,但其他的应该都是硬解,便无此题的巧妙解法了。
    查看全部
  • 其实如果要实现这个代码的话,直接用sale>100 && year>=2就可以了
    查看全部
  • == 为等于

    != 为 不等于

    = 为 赋值符号

    P.S

    能被4整除且不能被100整除(或能被400整除)即为闰年

    查看全部
  • 在test.c中加入static表示静态函数,使其能在不同源文件中使用相同的函数名称,例如本题中的printLine(),而在hello.c中printLine()被test.c调用,所以为外部函数,只有外部函数才能被别的源文件调用,所以要用extern。总结一下就是说如果你在调用文件中有与主文件相同的函数名要使用,则调用文件要加static,而在主文件中函数名被调用,则要加extern
    查看全部
  • 多重else是选择,并行,此路不通换别路, 嵌套else是递进,范围不断缩小,要求越来越高
    查看全部
    11 采集 收起 来源:练习题

    2017-08-21

  • 在C语言中,自动类型转换遵循以下规则: 1、若参与运算量的类型不同,则先转换成同一类型,然后进行运算。 2、转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。 a、若两种类型的字节数不同,转换成字节数高的类型 b、若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型 3、所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。 4、char型和short型参与运算时,必须先转换成int型。 5、在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。
    查看全部
    11 采集 收起 来源:自动类型转换

    2017-07-19

  • number = number + number * 0.2; // number += number * 0.2; %在C语言里面是算术符合,表示取余。 number = number + number * 20%; 20% 编译器会认为你缺少后面的数据。如:6%3的格式。 如果你想表示百分之二十的数据化,可以用0.2来表示。
    查看全部
  • 1、理清前后的逻辑关系:第一天的桃子数=(第二天的桃子数+1)×2, 2、结束条件:循环到第10天,还剩1个返回值1也就是结束 3、结束后才执行后面的return num;如果不设置返回值他会一直计算无限循环,返回值就像一个数据参考,没有他计算机无法计算这个公式的结果,所以才会无限循环。 4、printf("第%d天所剩桃子%d个\n", n, num);输出为什么是反向的? 因为我们的计算方式是递推1-2-3-...到-10,找到返回值是1,然后才向主函数返回数值9、8、7...1。也就是回推。 即教程里面说的:位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反; 5、输出的n,num就是计算过程。代表来回循环9次。 6、return num;代表的是就是“num = (getPeachNumber(n+1)+1)*2; ”一直到第十天的累加。 7、本身就是一个if...else...的语句,因为有了递归函数的存在,成为无线循环累加。 8、递归更像是定义一个递归变量,设置一个结束点,计算结果。
    查看全部
  • while做 #include <stdio.h> int main() { int n=0,s=0; while(n<=10) { s+=n; n++; } printf("十以内数之和为%d",s); return 0; } #include <stdio.h> int main() { int sum,num; sum=0; for(num=0;num<=10;num++) { sum+=num; } printf("十以内数之和为%d",sum); return 0; } do-while做 #include <stdio.h> int main() { int sum=0, num=0; do{ sum=sum+num; num++; }while(num<=10); printf("10以内数的和为:%d", sum); return 0; }
    查看全部
  • #include<stdio.h> int main() { int i,j,k; for(i=1;i<5;i++) { for(k=1;k<5-i;k++) { printf(" "); } for(j=1;j<=2*i-1;j++) { printf("*"); } printf("\n"); } }
    查看全部

  • i=1进入子循环之后,进入j=i的子循环,,这里呢j就会等于1,j++到不符合j<5这个条件之后退出这个子循环(实际上只需要j<4,第一行前面只有三个空格,但是因为编译软件的问题,这里默认出现了一个空格,就有了四个空格),就打印了4个空格.

    i=1进入k=0的子循环打印*

    k代表要插几个*,规律你看到了.1.3.5.7  顶层父循环i是循环5次,第一次i=1,k<2*i-1就是 k<2x1-1 那么k<1,第二次i=2计算得k<2x2-1  k<3. 就是找规律https://img1.sycdn.imooc.com//5d1b20bd0001373a04370382.jpghttps://img1.sycdn.imooc.com//5d1b20ec000169d701590138.jpg


    p.s:k=1;k小于等于2*i-1;k++ 与上面的表达一样。


    自己的理解:

    多重循环在执行的过程中,外层循环为父循环,内层循环为子循环,父循环一次,子循环需要全部执行完,直到跳出循环。父循环再进入下一次,子循环继续执行...

    题目中父循环,是总的循环次数,这里一共循环了4次,

    先父循环一次此时i=1,进入子循环,此时初始j=1,满足1<=3,打印一个@,由于j++,j=2时仍然满足2<=3 再能打印1个@,j++ j=3时,满足3<=3,再打印一个@,共计3个@,之后不再满足关系条件于是子循环完毕,进入孙子循环,满足0<1,可以打印一个*,而k++当k=2时不满足关系条件2<=1,这时跳出循环;

    进入下一次父循环,此时i=2,子循环1<=2,2<=2满足关系条件的能打印2个@,子循环打印完毕进入孙子循环,此时k=0,把i=2带入:0<=3 ,满足打印一个*,由于k++,k=1时,1<3,还能打印1个*,由于k++,k=2时,2<3,还能打印1个*,共计3个*,之后不再满足跳出循环;

    进入下一次父循环,此时i=3,子循环1<=1,满足关系条件的能打印1个@,子循环打印完毕进入孙子循环,此时k=0,把i=3带入:0<5 ,满足打印一个*,由于k++,k=1时,1<5,还能打印1个*,由于k++,k=2时,2<5,还能打印1个*...以此类推3<5,4<5共计5个*,之后不再满足跳出循环;

    .......重复以上外循环共4次


    图解

    https://img1.sycdn.imooc.com//5d1b3f340001acc305660509.jpg

    https://img1.sycdn.imooc.com//5d1b3f3900012a4401660094.jpg





    查看全部
  • 这个代码必须有break。在没有break的情况下,循环的时候假如说在第三个arr[i]=value,然后index=i,这个时候i=3,index也就是3,接着下一个循环i=4的时候,arr[4]不等于value,进入else,index又变成了-1,直到i=5,循环结束,返回-1.所以说break这个作用是当arr[i]等于value时,让index=i,接着跳出循环,返回index,得到正确结果。
    查看全部
  • 注意最后一个else不用加条件
    查看全部
  • 这个的意思是: 首先遍历数组,将数组中最大元素找到,并记录它是那号(index),即最大元素的下标是index 该函数是将数组arr中最大的元素替换成指定的值value 所以arr[index]=value,就完成了将最大值替换成value的功能 思路: 遍历找打最大元素下标index,将改下标对应元素赋新值value,从而实现替换操作
    查看全部

举报

0/150
提交
取消
课程须知
本教程仅仅是C程序设计的入门教程
老师告诉你能学到什么?
什么是程序; 什么是程序结构; 什么是函数; 什么是数组.

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!