读书人

编纂一个函数输入一个4位数字要求

发布时间: 2012-07-31 12:33:46 作者: rapoo

编写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字字符间空一个空格。如输入1990,应输出“1 9 9 0”。
#include<stdio.h>
#include<string.h>
void main()
{
char str[80];
void insert(char str[]);
printf("input four digits: ");
gets(str);
insert(str);
}
void insert(char str[])
{
int i;
for(i=strlen(str);i>0;i--)
{
str[2*i]=str[i];
str[2*i-1]=' ';
}
printf("output:\n%s\n",str);
}
请问大牛,str[2*i]=str[i];str[2*i-1]=' ';这里2*i是什么意思?有什么用吗?



[解决办法]
1990
位置0123
1 9 9 0
位置0 2 4 6
[解决办法]
int i;
for(i=strlen(str);i>0;i--)
{
str[2*i]=str[i]; //下标0123->0246
str[2*i-1]=' '; //下标1357的就为' '
}
[解决办法]

探讨

int i;
for(i=strlen(str);i>0;i--)
{
str[2*i]=str[i]; //下标0123->0246
str[2*i-1]=' '; //下标1357的就为' '
}

[解决办法]
C/C++ code
//编写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字字符间空一个空格。//如输入1990,应输出“1 9 9 0”。#include <stdio.h>#include <ctype.h>void fun() {    char d[5];    int i;    while (1) {        printf("\n请输入一个4位数字:");        fflush(stdout);        rewind(stdin);        fgets(d,5,stdin);        if (isdigit(d[0])         && isdigit(d[1])         && isdigit(d[2])         && isdigit(d[3]))            break;    }    for (i=0;i<4;i++) printf("%c ",d[i]);    printf("\n");}int main() {    fun();    return 0;} 

读书人网 >C语言

热点推荐