鱼C论坛

 找回密码
 立即注册
查看: 2625|回复: 6

[已解决]救救孩子吧

[复制链接]
发表于 2022-4-21 16:51:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是我的代码 想让输入9-265-81452-4中的数字放在数组里,但好像实现不了欸 运行的时候输不出来结果,求求大佬解惑  
#include<stdio.h>
int main()
{   char a[9]={0}; int i;
        scanf("%c-%c%c%c-%c%c%c%c%c-%c",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8]);

        for(i=0;i<9;i++)
        printf("%c",a[i]);
}
调试的时候会出现这个错误
   program received signal SIGSEGV ,Segmentation fault
最佳答案
2022-4-21 17:35:31
#include<stdio.h>

int main(void)
{
        char a[10] = {0} , c                                  ;
        int i , n                                             ;
        for(c = n = 0 ; n < 10 && c != '\n' ;) {
                c = getchar()                                 ;
                if(c >= '0' && c <= '9') a[n ++] = c          ;
        }
        printf("\n")                                          ;
        if(n == 10) {
                for(i = 0 ; i < n ; i ++) printf("%c" , a[i]) ;
                printf("\n")                                  ;
        } else printf("Error !\n")                            ;
}
        编译、运行实况:
D:\[00.Exercise]\[C]>g++ -o x x.c

D:\[00.Exercise]\[C]>x
9-265-81452-4

9265814524

D:\[00.Exercise]\[C]>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-21 17:07:37 | 显示全部楼层
本帖最后由 风车呼呼呼 于 2022-4-21 17:13 编辑

数组长度为9,怎么可能去存10个数
char a[9]={0};
而这里字符数组初始化也有问题,如果是想初始化字符0就加上单引号,或者就不要初始化,再干脆一点直接用int数组去存岂不是更好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-21 17:35:31 | 显示全部楼层    本楼为最佳答案   
#include<stdio.h>

int main(void)
{
        char a[10] = {0} , c                                  ;
        int i , n                                             ;
        for(c = n = 0 ; n < 10 && c != '\n' ;) {
                c = getchar()                                 ;
                if(c >= '0' && c <= '9') a[n ++] = c          ;
        }
        printf("\n")                                          ;
        if(n == 10) {
                for(i = 0 ; i < n ; i ++) printf("%c" , a[i]) ;
                printf("\n")                                  ;
        } else printf("Error !\n")                            ;
}
        编译、运行实况:
D:\[00.Exercise]\[C]>g++ -o x x.c

D:\[00.Exercise]\[C]>x
9-265-81452-4

9265814524

D:\[00.Exercise]\[C]>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-22 15:12:59 | 显示全部楼层
风车呼呼呼 发表于 2022-4-21 17:07
数组长度为9,怎么可能去存10个数

而这里字符数组初始化也有问题,如果是想初始化字符0就加上单引号,或 ...

哦对对对  傻了傻了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-22 15:32:02 | 显示全部楼层

那你选最佳答案啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-22 22:07:27 | 显示全部楼层

大兄弟,你要保存字符串,搞这么复杂干啥?

代码如下:
#include <stdio.h>

int main ()
{
    char string[100] = {0};
    scanf ("%s", string);
    printf ("%s\n", string);
    return 0;
}

验证如下:
9-265-81452-4
9-265-81452-4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-23 19:12:45 | 显示全部楼层
cjgank 发表于 2022-4-22 22:07
大兄弟,你要保存字符串,搞这么复杂干啥?

代码如下:

因为不想把减号也带进数组里面去来着,它后面要用到这些数字来着。
我现在会了 谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-5 20:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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