鱼C论坛

 找回密码
 立即注册
查看: 24449|回复: 37

挑战高难度题目,有兴趣的进(我觉得难度挺高的)

  [复制链接]
头像被屏蔽
发表于 2011-8-21 11:54:22 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-8-21 12:04:19 | 显示全部楼层
本帖最后由 风扫地 于 2011-8-21 16:53 编辑

想破头用三目运算符+递归写了个很糟糕的。。全当抛砖引玉了。。期待大牛们的思路。。

  1. int i=0;
  2. char count (char *str);
  3. main()
  4. {
  5.         char *str="Hello World!";
  6.         count(str);
  7.         printf("%d",i-1);
  8. }

  9. char count (char *str)
  10. {

  11.         int j=0;
  12.         i++;
  13.         j=(*str)?(count(str+1)):(0);
  14.         return 0;
  15.        
  16. }

复制代码



小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-12 15:23:48 | 显示全部楼层
strlen不可以么。。。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-13 01:20:06 | 显示全部楼层
#include <stdio.h>  

void main()  
{  
     int i;
         char name[1000];
         gets(name);
         i=strlen(name);
         printf("i=%d\n%s\n",i,name);
}
这个是否可以?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-13 04:07:02 From FishC Mobile | 显示全部楼层
sizeof - 1
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-13 09:00:29 | 显示全部楼层
sizeof。。。为什么 不用?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-13 10:27:39 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-13 17:39:34 | 显示全部楼层
{:7_148:}甲鱼哥的头像好酷
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-13 23:02:38 | 显示全部楼层
小甲鱼老师已经说了,我就不多说了!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-14 09:43:37 | 显示全部楼层
本帖最后由 柏柏 于 2011-9-14 10:45 编辑


{:7_154:}{:2_25:}
  1. #include <iostream.h>
  2. main()
  3. {
  4.    int na[]={1,3,2,1,5};
  5.    int size;
  6.    size=sizeof(na)/sizeof(int);
  7.    cout<<"Size="<<size<<endl;
  8.    return 0;
  9. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-15 06:48:25 | 显示全部楼层
我是来打酱油的

                               
登录/注册后可看大图
























                               
登录/注册后可看大图

添香防辐射服怎么样
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-15 14:52:30 | 显示全部楼层
易语言只要一句话就可以

取文本长度 (要取的文本)
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-17 20:48:35 | 显示全部楼层
sizeof -1 确实可以吗?
会不会得出的时字符数组的长度?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-18 03:03:47 From FishC Mobile | 显示全部楼层
木乱 发表于 2011-9-13 10:27  sizeof -1 怎么用?

sizeof(所求字符串(确切说是数组名))可以求出长度,“-1”是为了减掉结束符“\0”.
如果直接出现sizeof("adgjmwt"),可能结果为“4”,据我所知,字符串直接引用时,是当做首字母的指针来用的,这和数组名很相似。
目前条件有限,没法试验,要不你试试吧……
出结果告诉我。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-18 08:18:45 | 显示全部楼层


  1. int main()
  2. {  
  3.     scanf("%s",s);
  4. printf("%d\n",sizeof(s)-1);
  5.     return 0;
  6. }
复制代码
这个就不能用sizeof()来求吧

小甲鱼最新课程 -> https://ilovefishc.com
头像被屏蔽
 楼主| 发表于 2011-9-21 00:24:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-21 13:24:09 | 显示全部楼层
本帖最后由 枫叶情缘 于 2011-9-21 13:28 编辑

strlen函数可以获取字符串长度!
sizeof是在编译器编译过程中完成对字符取个数!
不用判断,循环,没有分支和编译器自带的字符处理函数,说句实话,那是不可能的事!
楼主“三目运算符+递归”程序采用“三目运算符”它本来判断性质的东东!
某种意义上讲,递归也是循环的一类!下面:
我修改一下(循环需要判断,如果三目运算符不属于判断,则本程序也没有什么“循环”):
char  *s[20];
  int     i=0;
   kd:
     **xx;
     **xx;
      i++;
    [i]    s ?  goto  kd:  goto kh;

kh

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-21 13:29:41 | 显示全部楼层
char  *s[20];
int  i=0;
kd:
    **X;
    **X;
    i ++;
  s[i]   ?   goto  kd:  goto  kh;
kh:
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-23 11:37:31 | 显示全部楼层
sizeof()。。。这个操作符。。只能求存在于 的数据长度。。大家使用的时候要注意哦。。。
引用:
sizeof("adgjmwt"),可能结果为“4”
"adgjmwt" 是常量字符串。。不是存放在中的,,所以只能求出它的指针长度。。。
//
二元操作符(bool)?(a):(b);我觉得也算是有判断吧。。。
个人意见。。。。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-23 11:39:10 | 显示全部楼层
:(
这个符号被转义为表情了
b?a:b;这是原意
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-5 13:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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