解题思路:


鉴于很多题解没有严格按题目要求通过数组、函数来求解,我便来介绍一个用数组求解此题的方法;


对于数据的处理,我们最容易想到的就是通过数组来求解,而在本题中,题目要求我们输入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.0分

37 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 34 条评论

哪吒 5月前 回复TA
#include<stdio.h>
void fun( char ch[4]){
    int i;
    for(i=0;i<4;i++){
        printf("%c ",ch[i]);
    }
}
int main(){
    char ch[4];
    gets(ch);
    fun(ch);
    return 0;
}
wzlhhh 9月前 回复TA
void t1034()
{
    // 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出"1 9 9 0"。
    int n = 0, i = 0;
    int arr[128] = {0};
    scanf("%d", &n);
    while (n)
    {
        arr[i] = n % 10;
        n = n / 10;
        i++;
    }
    while (i)
    {
        printf("%d ", arr[i - 1]);
        i--;
    }
}
萧萧 10月前 回复TA
#include<stdio.h>
#include<string.h>
int main()
{
	char str[10];
	gets(str);
	for(int i=0;str[i]!='\0';i++)
	{
		printf("%c ",str[i]);
	}
}
别踹我那条好腿 10月前 回复TA
#include<stdio.h>
#include<string.h>

char text[] = "0123456789";

void function(char* a, int num)
{
	
	for (int i = 0;i < 8;i++)
	{
		if (i % 2 == 0)
		{
			switch (i)
			{
			case 0:a[i] = text[num / 1000];
				break;
			case 2:a[i] = text[num / 100%10];
				break;
			case 4:a[i] = text[num /10%10];
				break;
			case 6:a[i] = text[num %10];
				break;
			}
		}
		else
		{
			a[i] = ' ';
		}
	}
}

int main()
{
	int num;
	char a[10]="";
	scanf("%d", &num);
	function(a, num);
        return 0;
向志权 1年前 回复TA
#include<stdio.h>
int main()
{
	int i;
	char x[4];
	scanf("%s",&x);
	for(i=0;i<4;i++)
	{
		printf("%c ",x[i]);
	}
	printf("\n");
	return 0;
}
向志权 1年前 回复TA
#include<stdio.h>
#include<string.h>
int main()
{
	int i,t;
	char x[100];
	scanf("%s",&x);
	t=strlen(x);
	for(i=0;i<t;i++)
	{
		if(x[i]=='a'||x[i]=='o'||x[i]=='i'||x[i]=='e'||x[i]=='u')
		{
			printf("%c",x[i]);
		}
	}
	return 0;
}
摆烂崽子 1年前 回复TA
@瑾 因为题要你建立一个新函数
kd35 1年前 回复TA
@瑾 @dotcpp0653542 可以前三个数带空格最后一个单独输出
leon233 1年前 回复TA
#include<stdio.h>
#include<string.h>
int main()
{
    void space(char arr[]);
    char a[10], i;
    for (i = 0; i < 4; i++)
    {
        scanf("%c", &a[i]);
    }//数组初始化
    a[i] = '\0';
    space(a);
    return 0;
}

void space(char arr[])
{
    int i;
    for (i = 0; i < strlen(arr); i++)
    {
        printf("%c ", arr[i]);
    }
}
清臣 1年前 回复TA
@瑾 这样可以在输出最后一个数后没有空格