函数调用的问题!

cqzxlj1986 2010-04-21 08:29:24
编写一个函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字字符间空一个空格。如输入1990,应输出“1 9 9 0”。感觉我的语法没错,单输出就是出错呢?
#include<stdio.h>
#include<string.h>
void main()
{
char str[80];
void insert(char str[]);
printf("input four digits:");
scanf("%s",str);
insert(str);
}

void insert(char str[])
{
int i,t;
t=strlen(str);
for(i=0;i<t;i++)
if(i>0)
{
str[2*i-1]=' '; /*输出空格*/
str[2*i]=str[i];
}
printf("output:\n%s\n",str);
}


为什么总是输出下面的结果:
input four digits:1234
output:
1 烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫
汤
Press any key to continue
...全文
88 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cqzxlj1986 2010-04-21
  • 打赏
  • 举报
回复
谢谢大家的帮助,问题解决了!!!!!
boych 2010-04-21
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, m;
printf("Enter a number: \n");
scanf("%d",&n);
int t = 0, i = 0, a[80];
while(n) {
m = n % 10;
n = (n - m)/10;
a[t] = m;
++t;
}
for(i = t - 1; i >= 0; --i)
printf("%d ",a[i]);//顺序输出
printf("\n");

system("pause");
return 0;
}
huanmie_09 2010-04-21
  • 打赏
  • 举报
回复

#include<stdio.h>
#include<string.h>
void main()
{
char str[80];
void insert(char str[]);
printf("input four digits:");
scanf("%s",str);
insert(str);
}

void insert(char str[])
{
int i,t;
char s[80];
t=strlen(str);
for(i=0;i<t;i++) {
s[2*i] = str[i];
s[2*i+1] = ' ';
}
s[2*i-1] = '\0';
strcpy(str, s);
printf("output:\n%s\n",str);
}
yiruirui0507 2010-04-21
  • 打赏
  • 举报
回复
楼主你的
void insert(char str[])
{
int i,t;
t=strlen(str);
for(i=0;i<t;i++)
if(i>0)
{
str[2*i-1]=' '; /*输出空格*/
str[2*i]=str[i];
}
printf("output:\n%s\n",str);
}
有问题,当I=0时候,什么都没执行,当I=1的时候,执行;
str[2*1-1]=' ';
str[2]=str[1];
i=2,
str[3]=' ';
str[4]=str[2];
看到了吧,所以你的输出是1和后面的3个空格,最后你的str没有'\0'结束符,所以后面显示的是乱吗。
yiruirui0507 2010-04-21
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<string.h>

void insert(char str[]);

int main()
{
char str[80] = {0};

printf("input four digits:");
scanf("%s",str);
insert(str);
}

void insert(char str[])
{
int i,t;
t=strlen(str);
char str1[80];
for(i=0;i<t;i++)
{
str1[2*i]=str[i];
str1[2*i+1]=' '; /*输出空格*/
}
str1[2*i]='\0';
printf("output:\n%s\n",str1);
}
fox000002 2010-04-21
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<string.h>

void insert(char str[]);

int main()
{
char str[80] = {0};

printf("input four digits:");
scanf("%s",str);
insert(str);
}

void insert(char str[])
{
int i,t;
t=strlen(str);
for(i=t;i>0;i--)
{
str[2*i]=str[i];
str[2*i-1]=' '; /*输出空格*/
}
printf("output:\n%s\n",str);
}
huatian008 2010-04-21
  • 打赏
  • 举报
回复
调试一下就好了

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧