鱼C论坛

 找回密码
 立即注册
查看: 3759|回复: 16

C代码求解

[复制链接]
发表于 2012-10-16 22:40:59 | 显示全部楼层 |阅读模式
3鱼币
  1. #include<stdio.h>
  2. int main()
  3. {char x[]="programming";
  4. char y[]="Fortran";
  5. int i=0;
  6. while(x[i]!='\0' &&y[i]!='\0')
  7.          if(x[i]==y[i]) printf("%c\n",x[i++]);
  8.          else i++;
  9.          return 0;
  10. }
复制代码
printf("%c\n",x[i++]); 用x[i++],不明白!!求解释。

最佳答案

查看完整内容

这个目的只是为了能够让i自加,然循环继续下去。其实你要是不理解这种方式,可以修改为printf(“c%\n”,x); i++; 补充内容 (2012-10-17 17:48): 原作者是放在一句话来写得,我们写成两句话然后加个大括号就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-10-16 22:41:00 | 显示全部楼层
这个目的只是为了能够让i自加,然循环继续下去。其实你要是不理解这种方式,可以修改为printf(“c%\n”,x);
i++;

补充内容 (2012-10-17 17:48):
原作者是放在一句话来写得,我们写成两句话然后加个大括号就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-16 22:53:21 | 显示全部楼层
这个教程有说额。
printf("%c\n",x[i++]); 用x[i++],

这个意思是 数组 x[i++]   i=0的话就是i+1    “++”表示自加1
如果你说关于用printf输出的问题,你应该看教程说的 ++1,1++这问题了,就是说加号在前后的运算问题了!
++在前就是先加再赋值,++在后就是先赋值再++
不晓得你懂否,我也说不了很专业!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-16 22:57:47 | 显示全部楼层
  1. #include<stdio.h>
  2. int main()
  3. {char x[]="programming";
  4. char y[]="Fortran";
  5. int i=0;
  6. while(x[i]!='\0' &&y[i]!='\0')
  7.          if(x[i]==y[i]) printf("%c\n",x[i++]);//你初始化i等于0,然后进入while循环,
  8.                                                          //输出同位而且相同的字母,然后i++,进入下一次while循环
  9.          else i++;                                  //假如不相同,直接i++后进入下一次while循环
  10.                                                         //可以看看小甲鱼老师c视频第二章
  11.          return 0;
  12. }
复制代码
//我也刚刚学c,一起努力啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-16 23:47:08 | 显示全部楼层
相当于
  1. while(x[i]!='\0' &&y[i]!='\0')
  2. {
  3.          if(x[i]==y[i])
  4.          {
  5.                  printf("%c\n",x[i]);
  6.                  i++;
  7.          }
  8.          else i++;
  9.          return 0;
  10. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-17 00:30:33 | 显示全部楼层
while(x[i]!='\0' &&y[i]!='\0')

{

         if(x[i]==y[i])
         {

                 printf("%c\n",x[i])
         }

  i++;

         return 0;

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-17 00:31:33 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-17 08:40:35 | 显示全部楼层
#include<stdio.h>
int main()
{
//定义字符数组x,y
char x[]="programming";
char y[]="Fortran";
//while循环
int i=0;
while(x[i]!='\0' &&y[i]!='\0')
         if(x[i]==y[i]) printf("%c\n",x[i++]);
         else i++;
         return 0;
}
printf("%c\n",x[i++])等价于:
{
    prIntf("%c\n",x[i]);
    i++;
}
这样做可以使代码简洁,如果你的意思是为什么用i++,而不用i做索引,那是因为如果用i做索引,又没有对i进行自增操作,程序可能陷入死循环,注意你的程序中的i++只是在else情况下执行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-17 08:51:42 | 显示全部楼层
so ga 数组哈。。。  这个教程多看几遍就能看懂的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-10-17 10:43:14 | 显示全部楼层
花已凋零 发表于 2012-10-16 22:53
这个教程有说额。
printf("%c\n",x); 用x,

你好,自减自加过去已明白,感谢回答,但我的问题是。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-17 11:10:21 | 显示全部楼层
if(x[i]==y[i]) printf("%c\n",x[i++]);
         else i++;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-17 12:25:00 | 显示全部楼层
这个同学每天都发这么多问题,他自己认真思考过了没啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-10-17 13:00:30 | 显示全部楼层
画个圈圈叉死你 发表于 2012-10-17 12:25
这个同学每天都发这么多问题,他自己认真思考过了没啊?

你好,我都有思考过,先感谢回复!!!{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-18 14:43:36 | 显示全部楼层
这个与if(x[i]==y[i]) printf("%c\n",x[i]); i++;  是一样的,函数的功能是比较并输出两个字符串相同的部分(位置与内容均相同)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-18 17:16:51 | 显示全部楼层
hackbs 发表于 2012-10-17 08:51
so ga 数组哈。。。  这个教程多看几遍就能看懂的。

我感觉楼主根本没认真去理解,我以为他是对运算优先级问题。结果是完全不理解语句表达意思~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-18 23:09:55 | 显示全部楼层
这有啥难的,先把x[i]输出,然后自增,在执行while循环。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-23 12:55:42 | 显示全部楼层
#include<stdio.h> int main() {char x[]="programming";  char y[]="Fortran";  int i=0;  while(x[i]!='\0' &&y[i]!='\0')          if(x[i]==y[i]) printf("%c\n",x[i]);          i++;          return 0; } 这样是一样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-25 03:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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