救救孩子吧
这是我的代码 想让输入9-265-81452-4中的数字放在数组里,但好像实现不了欸 运行的时候输不出来结果,求求大佬解惑#include<stdio.h>
int main()
{ char a={0}; int i;
scanf("%c-%c%c%c-%c%c%c%c%c-%c",&a,&a,&a,&a,&a,&a,&a,&a,&a);
for(i=0;i<9;i++)
printf("%c",a);
}
调试的时候会出现这个错误
program received signal SIGSEGV ,Segmentation fault 本帖最后由 风车呼呼呼 于 2022-4-21 17:13 编辑
数组长度为9,怎么可能去存10个数
char a={0};
而这里字符数组初始化也有问题,如果是想初始化字符0就加上单引号,或者就不要初始化,再干脆一点直接用int数组去存岂不是更好 #include<stdio.h>
int main(void)
{
char a = {0} , c ;
int i , n ;
for(c = n = 0 ; n < 10 && c != '\n' ;) {
c = getchar() ;
if(c >= '0' && c <= '9') a = c ;
}
printf("\n") ;
if(n == 10) {
for(i = 0 ; i < n ; i ++) printf("%c" , a) ;
printf("\n") ;
} else printf("Error !\n") ;
}
编译、运行实况:
D:\\>g++ -o x x.c
D:\\>x
9-265-81452-4
9265814524
D:\\> 风车呼呼呼 发表于 2022-4-21 17:07
数组长度为9,怎么可能去存10个数
而这里字符数组初始化也有问题,如果是想初始化字符0就加上单引号,或 ...
哦对对对傻了傻了 呵呵哈哈哦哦 发表于 2022-4-22 15:12
哦对对对傻了傻了
那你选最佳答案啊
大兄弟,你要保存字符串,搞这么复杂干啥?
代码如下:
#include <stdio.h>
int main ()
{
char string = {0};
scanf ("%s", string);
printf ("%s\n", string);
return 0;
}
验证如下:
9-265-81452-4
9-265-81452-4
cjgank 发表于 2022-4-22 22:07
大兄弟,你要保存字符串,搞这么复杂干啥?
代码如下:
因为不想把减号也带进数组里面去来着,它后面要用到这些数字来着。
我现在会了 谢谢啦
页:
[1]