解题思路:


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


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

An 3年前 回复TA
@meizanwalida #include<stdio.h> void k(int a); int main() { 	int a; 	scanf("%d",&a); 	k(a); } void k(int x) { 	int b[4],i; 	for(i=0;i<4;i++) 	{ 		b[i]=x%10; 		x=x/10; 	} 	for(i=3;i>=0;i--) 	printf("%d ",b[i]); }
花开回落 3年前 回复TA
#include<stdio.h>
void shuchu(char a[4])
{
    int  b=0;
    for (b;b<4;b++)
    {
        if(a[b]=='\0')
        {
            break;
        }
        printf("%c ",a[b]);
    }
}
int main()
{
    char a[4];
    gets(a);
    shuchu(a);
    return 0;
}
花开回落 3年前 回复TA
#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]);
    }
}
中南打工人 3年前 回复TA
#include<stdio.h>
int chu(char a[5]);
int main()
{
    char a[5];
    gets(a);
    chu(a);
	return 0;
}
int chu(char a[5]){
    for(int i=0;i<3;i++){
        printf("%c ",a[i]);
    }
    printf("%c\n",a[3]);
    return 0;
}


题目只要求4位数,如果数字多了还可以将a[5]换成a[1000],目前来说我感觉我写的这种最简单
meizanwalida 3年前 回复TA
#include "stdio.h"
#include "string.h"
void main()
{
    int i,len;
    char a[1000],b[1000];
    gets(a);
    len = strlen(a);
    for(i = 0;i<=len-1;i++)
    {
        b[i+i] = a[i];
        b[2*i-1] = ' ';
    }
    b[i+i-1] = '\0';
    puts(b);
}
秃头的忍鸡 3年前 回复TA
@秃头的忍鸡 对不起,看错了
秃头的忍鸡 3年前 回复TA
写错了吧,第16行应该是if(i!=0)
GALAXY 3年前 回复TA
#include<stdio.h>
int func1(char a[],char b[]){
	int i,j=0;
	for(i=0;j<7;i++){
		b[j]=a[i];
		b[j+1]=' ';	
		j=j+2;
	}
	b[7]='\0';
}
int main(){
	char a[4],b[10];
	gets(a);
	func1(a,b);
	puts(b);
} 
答案是对的,但是运行错误,怎么回事呢
霸气江江 3年前 回复TA
@kinkin 为啥显示格式错误
霸气江江 3年前 回复TA
@浅梦 这个为啥运行错误呢