鱼C论坛

 找回密码
 立即注册
查看: 2488|回复: 4

[已解决]这个问题在哪里呀?

[复制链接]
发表于 2022-11-19 18:32:31 | 显示全部楼层 |阅读模式
1鱼币
这个程序这2个//去掉任何一个都会出错错误提示是这样。
想不出哪里错了。
最佳答案
2022-11-19 18:32:32
这个程序这2个//去掉任何一个都会出错错误提示是这样。
想不出哪里错了
帮把代码稍微改了一下.是可以正常运行了。
#include<stdio.h>

int main()
{
        int i,a,b = 0, j;
        char *p, in[33] = {0}, s[33] = {0};
        _Bool h = 0;

        p = in;                                          //把指针指向数组的首元素的首地址,以便后面使用

        printf("请输入一个整数: ");
        scanf("%d",&i);

        if(i < 0)
        {
                i = -i;
                h =  1;
        }

        for(j = 10; ; j*=10)
        {
                a = i %j;                                 //把数字i的第 j/10位取出来
                *p++ = a/(j / 10) + '0';             //是把变量a中的数字转换为字符形式存储到in的数组中,前面用p指向了数组a的首元素的首地址
                i -= a;                                      //改变变量i的值,减掉j/10位的值
                b++;                                        //这里把b做累加统计字符个数

                if(i == 0)
                {
                        a = 0;
                        if(h) 
                        {
                                s[a++] = '-';
                        }

                        p--;                                                //现在*p 的值为0或者控制符,移动指针p使他指向前一个已知字符,

                        while (b > 0)
                        {
                                s[a++] = *p--;                //移动指针p把数组in里存储的字符赋给数组s
                                b--;                                //数组in里面字符个数减一
                        }
                        s[a] = '\0';
                        break;
                }
        }
        
        return 0;
}
程序这2个// 和i -= a;  其实就是在把数值的每一位给提取并转换为字符
如果看不懂,就把指针和数组搞明白了,再来看这个,

最佳答案

查看完整内容

这个程序这2个//去掉任何一个都会出错错误提示是这样。 想不出哪里错了 帮把代码稍微改了一下.是可以正常运行了。 程序这2个// 和i -= a; 其实就是在把数值的每一位给提取并转换为字符 如果看不懂,就把指针和数组搞明白了,再来看这个,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-19 18:32:32 | 显示全部楼层    本楼为最佳答案   
这个程序这2个//去掉任何一个都会出错错误提示是这样。
想不出哪里错了
帮把代码稍微改了一下.是可以正常运行了。
#include<stdio.h>

int main()
{
        int i,a,b = 0, j;
        char *p, in[33] = {0}, s[33] = {0};
        _Bool h = 0;

        p = in;                                          //把指针指向数组的首元素的首地址,以便后面使用

        printf("请输入一个整数: ");
        scanf("%d",&i);

        if(i < 0)
        {
                i = -i;
                h =  1;
        }

        for(j = 10; ; j*=10)
        {
                a = i %j;                                 //把数字i的第 j/10位取出来
                *p++ = a/(j / 10) + '0';             //是把变量a中的数字转换为字符形式存储到in的数组中,前面用p指向了数组a的首元素的首地址
                i -= a;                                      //改变变量i的值,减掉j/10位的值
                b++;                                        //这里把b做累加统计字符个数

                if(i == 0)
                {
                        a = 0;
                        if(h) 
                        {
                                s[a++] = '-';
                        }

                        p--;                                                //现在*p 的值为0或者控制符,移动指针p使他指向前一个已知字符,

                        while (b > 0)
                        {
                                s[a++] = *p--;                //移动指针p把数组in里存储的字符赋给数组s
                                b--;                                //数组in里面字符个数减一
                        }
                        s[a] = '\0';
                        break;
                }
        }
        
        return 0;
}
程序这2个// 和i -= a;  其实就是在把数值的每一位给提取并转换为字符
如果看不懂,就把指针和数组搞明白了,再来看这个,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-11-19 18:33:35 | 显示全部楼层
`IH(HM0273_X~5P`2JAUO4B.png 代码是这样的 @46NVPO~)0OFB[7{V]$EZM3.png 这2个//去掉任何一个都会出错 QFBKOM6M~T8CP9K)V8OU%9X.png 这个错误提示,为什么呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-19 19:08:44 | 显示全部楼层
本帖最后由 jackz007 于 2022-11-19 19:10 编辑

        你这个程序什么功能?
        你希望别人完整地敲一遍你的代码?????
        要求助就必须贴代码文本!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-19 19:19:46 | 显示全部楼层
如果去掉a=i%j;,没赋初值的a可以是任意值,下面凡是涉及a的运算后的值也是任意值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 09:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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