| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1820 人关注过本帖
标题:这个程序怎么就有问题啊!各位大佬帮帮我
只看楼主 加入收藏
谦忍鸣
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2021-12-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
这个程序怎么就有问题啊!各位大佬帮帮我
#include<stdio.h>
int main()
{
    void fun();
    char s[19];
    fun(s);
}
void fun(char *w)
{
    int i,x,y;
    for(i=1,y=0;i<=100;i++)
    {
      x=i;
      while(x>0)
      {
            *(w+y)=x%10;
            x/=10;
          y++;
      }
      *(w+y)='\0';
      for(x=0,y=y-1;x<y;x++,y--)
      if(*(w+x)==*(w+y))
      continue;
      else
      break;
      if(x>=y)
      printf("******%d\n",i);
    }
}
搜索更多相关主题的帖子: for void fun char int 
2022-03-07 15:57
不会游泳的虾
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:27
帖 子:108
专家分:675
注 册:2021-7-1
收藏
得分:7 
void fun(char *); //void fun(); 函数声明形参没有
2022-03-07 17:12
谦忍鸣
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2021-12-9
收藏
得分:0 
回复 2楼 不会游泳的虾
这个不用声明也可以
2022-03-07 17:14
zhejin
Rank: 1
等 级:新手上路
帖 子:1
专家分:7
注 册:2022-2-28
收藏
得分:7 
fun函数应该在main函数之上
2022-03-07 17:48
谦忍鸣
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2021-12-9
收藏
得分:0 
回复 4楼 zhejin
不是函数定义这个问题,他提示的是栈溢出,我不理解为什么会栈溢出
2022-03-07 23:26
不会游泳的虾
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:27
帖 子:108
专家分:675
注 册:2021-7-1
收藏
得分:0 
回复 3楼 谦忍鸣
这样不带形参的声明,函数实现时又带了形参,编译过不去啊,把函数的实现搬到main()函数前面,这是可以的。另代码里是实现什么功能,栈溢出。修改如下,供参考:
程序代码:
#include<stdio.h>
int main()
{
    void fun(char *); //void fun(); 函数声明形参没有
    char s[19];
    fun(s);
    return 0;
}
void fun(char* w)
{
    int i, x, y;
    for (i = 1, y = 0; i <= 100; i++)
    {
        x = i; y = 0; //y 复位归零
        while (x > 0)
        {
            *(w + y) = x % 10;
            x /= 10;
            y++;
        }
        *(w + y) = '\0';
        for (x = 0, y = y - 1; x < y; x++, y--)
            if (*(w + x) == *(w + y))
                continue;
            else
                break;
        if (x >= y)
            printf("******%d\n", i);
    }
}


[此贴子已经被作者于2022-3-8 09:33编辑过]

2022-03-08 08:29
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:7 
这个程序怎么就有问题啊!各位大佬帮帮我
有什么问题应该你告诉大家,怎么解决才是别人告诉你。
你只贴段代码,别人都不知道要解决什么问题,只能瞎猜

#include <stdio.h>

int main( void )
{
    void fun(); // C语言中不写参数列表的话表示可以接受任意参数,相当于C++的void fun(...)
    fun();
}

void fun( void )
{
    for( int i=1; i<=100; ++i )
    {
        char s[19];
        int len = 0;
        for( int t=i; t!=0; t/=10 )
            s[len++] = t%10;

        int index;
        for( index=0; index!=len/2; ++index )
        {
            if( s[index] != s[len-1-index] )
                break;
        }

        if( index == len/2 )
            printf( "******%d\n", i );
    }
}


[此贴子已经被作者于2022-3-8 13:01编辑过]

2022-03-08 12:56
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
写代码要规矩,不要故意给自己添麻烦。
比如,你代码中的 y 只需要在for中起作用,那么正常人就不会写到for之外去
2022-03-08 13:03
谦忍鸣
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2021-12-9
收藏
得分:0 
回复 6楼 不会游泳的虾
我把for循环的表达式1看成了每次循环都会执行的语句了,忘了他其实只有初始化,谢谢提醒
2022-03-08 15:08
谦忍鸣
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2021-12-9
收藏
得分:0 
回复 7楼 rjsp
实在不好意思,当时很心急不知道咋办了。下次一定注意!
大佬你的算法是在循环中定义变量,这样做是不是每次循环结束后之前定义的变量就释放了,达到重新赋值的效果是吧?
2022-03-08 15:23
快速回复:这个程序怎么就有问题啊!各位大佬帮帮我
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038476 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved