鱼C论坛

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

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

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

  1. #include<stdio.h>

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

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

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

  10.         if(i < 0)
  11.         {
  12.                 i = -i;
  13.                 h =  1;
  14.         }

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

  21.                 if(i == 0)
  22.                 {
  23.                         a = 0;
  24.                         if(h)
  25.                         {
  26.                                 s[a++] = '-';
  27.                         }

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

  29.                         while (b > 0)
  30.                         {
  31.                                 s[a++] = *p--;                //移动指针p把数组in里存储的字符赋给数组s
  32.                                 b--;                                //数组in里面字符个数减一
  33.                         }
  34.                         s[a] = '\0';
  35.                         break;
  36.                 }
  37.         }
  38.        
  39.         return 0;
  40. }
复制代码

程序这2个// 和i -= a;  其实就是在把数值的每一位给提取并转换为字符
如果看不懂,就把指针和数组搞明白了,再来看这个,

最佳答案

查看完整内容

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

使用道具 举报

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

  1. #include<stdio.h>

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

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

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

  10.         if(i < 0)
  11.         {
  12.                 i = -i;
  13.                 h =  1;
  14.         }

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

  21.                 if(i == 0)
  22.                 {
  23.                         a = 0;
  24.                         if(h)
  25.                         {
  26.                                 s[a++] = '-';
  27.                         }

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

  29.                         while (b > 0)
  30.                         {
  31.                                 s[a++] = *p--;                //移动指针p把数组in里存储的字符赋给数组s
  32.                                 b--;                                //数组in里面字符个数减一
  33.                         }
  34.                         s[a] = '\0';
  35.                         break;
  36.                 }
  37.         }
  38.        
  39.         return 0;
  40. }
复制代码

程序这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-5-2 15:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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