原题链接:[编程入门]自定义函数之数字分离
解题思路:
鉴于很多题解没有严格按题目要求通过数组、函数来求解,我便来介绍一个用数组求解此题的方法;
对于数据的处理,我们最容易想到的就是通过数组来求解,而在本题中,题目要求我们输入4个连续的不带空格的数,那么我们怎么不带空格让其赋予到一个数组里的4个不同的元素中呢?很明显,“int”"double" 型数组都没有办法实现我们的目标,我们便可以采用字符型数组(“char”)来解决我们的问题。(没想到吧,字符型数组在处理纯数字时也能派上用场)
注意事项:
输入输出时记得用%c!
参考代码:
#include <stdio.h>
void kongge (char a[4]);
int main()
{
char a[4];
int i;
for(i=0;i<4;i++)
scanf("%c",&a[i]);
kongge(a);
return 0;
}
void kongge (char a[4])
{
int i,t=0;
for(i=0;i<4;i++){
if(t!=0) //用来输出空格
printf(" ");
t++;
printf("%c",a[i]);
}
}0.0分
37 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include<stdio.h> int main() { char a[4]; int i; gets(a); for(i=0;i<4;i++) { printf("%c ",a[i]); } return 0; } 额,我直接for 循环的时候往输出里加个空格不就好了?为啥要专门声明一个新的空函数为输出空格专门建立一个for 循环?#include<stdio.h> #define N 4 int main(){ int i; char a[N]; for(i=0;i<N;i++){ scanf("%c",&a[i]); } for(i=0;i<N;i++){ printf("%c ",a[i]); } } 直接无脑#include<stdio.h> #include<string.h> void fun(char a[],char b[]) { int i,l,j=0; l=strlen(a); for(i=0;i<l;i++) { if(a[i]!='\0')//判断是否循环到数组a[]的最后结尾。 { b[j]=a[i]; j++; b[j++]=' ';//给b[]增加的一位上加入空格。 } } } int main() { char a[1000],b[1000]; gets(a); fun(a,b); puts(b); return 0; }@北极星 想问一下为什么删掉计算字符串这个函数然后提交是错误的呢#include<stdio.h> int main() { char a[4]; gets(a); int i; for(i=0;i<4;i++) {printf("%c ",a[i]);} return 0; }#include <stdio.h> void num(int a); int main() { int a; scanf("%d",&a); num(a); return 0; } void num(int a) { int n; int m=a; int i=1000; do{ n = m/i; m = m%i; printf("%d ",n); i = i/10; }while(i>0); }#include<stdio.h> #include<string.h> int main() { char a[100]; gets(a); int m,i; m=strlen(a); for(i=0;i<m;i++) {printf("%c ",a[i]);} return 0; }