鱼C论坛

 找回密码
 立即注册
查看: 3903|回复: 8

C语言新手,各种求大神帮助

[复制链接]
发表于 2013-8-14 17:58:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
{:2_28:}{:2_28:}身为C语初来小菜鸟一名,今天被一道星星题给卡住了,各种纠结了2个小时还是在死循环里扑腾,求大神帮忙给出正确答案!  

这是题目:
未命名.jpg

   解出来是这样的  
#include<stdio.h>   
void main()
{
  int  i,  j;
  for ( i = 1 ; i < 7 ; i++)
  {   
        for( j = 1 ; j <= i ; j++)
   {
      putchar('*');
   }
      printf("\n");
}
}


然后小鱼老师说可以去思考下反过来输入,相当于就是先6个星,然后5个,然后4个。。。。。。然后1个。我想如果倒过来的话,那么它的列数还是6列,那第一个i的值以及表达式表达语句都不变,就变第二个“ *" 输出的量 “j”,由于刚刚是第一排打一个”*“,现在要换成打6个”*“,那么 j 就应该赋6值进去,然后每增加一列就减少一颗”*",所以第三个表达式改为 j--,改后即为下面这样:  
#include<stdio.h>   
void main()
{
int i, j;
for ( i = 1 ; i < 7 ; i++)
{  

   for( j = 6 ; j <= i ; j--)
   {
     putchar('*');
   }
    printf("\n");
}
}


于是乎,杯具就这样在一瞬间赤裸裸的发生了,我一运行此程序,华丽丽的进入了传说中的死循环,而且我怎么想都觉得我改对了滴,但就是在无限的循环循环循环......................................

求大神赐教!膜拜!{:7_160:}

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-8-14 18:16:37 | 显示全部楼层
本帖最后由 苹果沃珂 于 2013-8-14 18:20 编辑

#include<stdio.h>   
int main()
{
        int i, j;
        for ( i = 1 ; i < 7 ; i++)
        {  

                for( j = 7-i ; j >0 ; j--)
                {
                        putchar('*');
                }
                printf("\n");
        }
        return 0;
}
效果:
BaiduShurufa_2013-8-14_18-20-55.png



小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-14 18:29:18 | 显示全部楼层
我以这题为例,把初学者编写程序的步骤写下来,希望LZ按照这种方式慢慢训练自己:
第一个版本:直接用注释表达自己的思想
  1. #include <stdio.h>
  2. int main(void) {
  3.         //打印第1行
  4.         //换行
  5.         //打印第2行
  6.         //换行
  7.         //打印第3行
  8.         //换行
  9.         //打印第4行
  10.         //换行
  11.         //打印第5行
  12.         //换行
  13.         //打印第6行
  14.         //换行
  15.         return 0;
  16. }
复制代码
第2个版本,细化注释

  1. int main(void) {
  2.         //打印第1行:6个*
  3.         //换行
  4.         //打印第2行:5个*
  5.         //换行
  6.         //打印第3行:4个*
  7.         //换行
  8.         //打印第4行:3个*
  9.         //换行
  10.         //打印第5行:2个*
  11.         //换行
  12.         //打印第6行:1个*
  13.         //换行
  14.         return 0;
  15. }
复制代码
第3个版本,找到行数和*个数的关系

  1. int main(void) {
  2.         //打印第1行:7-1个*
  3.         //换行
  4.         //打印第2行:7-2个*
  5.         //换行
  6.         //打印第3行:7-3个*
  7.         //换行
  8.         //打印第4行:7-4个*
  9.         //换行
  10.         //打印第5行:7-5个*
  11.         //换行
  12.         //打印第6行:7-6个*
  13.         //换行
  14.         return 0;
  15. }
复制代码
第4个版本,用注释写出循环

  1. int main(void) {
  2.         int i;
  3.         for( i=1; i<=7;++i ) {
  4.                 //打印第i行:7-i个*
  5.                 //换行
  6.         }
  7.         return 0;
  8. }
复制代码
第5个版本,填充注释内容

  1. int main(void) {
  2.         int i;
  3.         for( i=1; i<=7;++i ) {
  4.                 //打印第i行:7-i个*
  5.                 int j;
  6.                 for(j=0;j<7-i;++j)
  7.                         printf("*");
  8.                 //换行
  9.                 printf("\n");
  10.         }
  11.         return 0;
  12. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-14 18:34:52 | 显示全部楼层
编程刚开始不熟悉,重要的是要一步步靠近目标,一步步将自己的思想慢慢转化为C代码。请注意以上每个版本都是可以执行的,这样就便于确信自己的每次修改是正确的。
其实任何C语言程序都是需要作者将自己的思想用C语言表达出来,但由于C语言太底层,有时候一个简单的思想要写很多句C语言才能表达出来,这时候,就可以采用我上面的办法来处理。
用这种办法相对不容易出错,而且可以写出比较长的代码。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-14 19:04:17 | 显示全部楼层

:hug::hug::hug::hug:有一种醍醐灌顶的感觉,多谢大神赐教!{:2_31:}努力去咯!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-14 19:05:00 | 显示全部楼层
苹果沃珂 发表于 2013-8-14 18:16
#include   
int main()
{

:handshake:handshake3Q very much!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-14 19:35:37 | 显示全部楼层
for( j = 6 ; j <= i ; j--)  这一句 死循环。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-14 20:06:09 | 显示全部楼层
顶下 仰望天上的光 编程确实要想想好程序执行的思路,再按照自己设定的思路来编写,重要是思想啊。值得学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-14 20:46:44 | 显示全部楼层
2楼牛人啊.......
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-17 06:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表