小弟新学C,有问题请教

洪源 2014-05-10 03:32:10
先输入一个数组,用函数调用的方法将这个数组的值倒过来传递给另一个数组。我自己写了下面这段代码,怎么改总是输出五个“烫”字。不知道怎么办了,来请教大神们!
#include "stdio.h"
void main()
{
char daozhi(char a[],char b[]);
char a[10],b[10];
int i;
for(i=0;i<=9;i++)
scanf("%c",&a[i]);
for(i=0;i<=9;i++)
printf("%c",b[i]);
}
char daozhi(char a[],char b[])
{
int x,y=9,t;
for(x=0;x<=9;x++)
{
b[y]=a[x];
y--;
}
}
...全文
92 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Falleyes 2014-05-11
  • 打赏
  • 举报
回复
C语言我一节课都没去过,都是自学的,重要的是掌握基本的规则,然后多运用这些规则写程序。所谓编程,就是遵守现有的种种语法规则,实现任何要实现的效果。
洪源 2014-05-10
  • 打赏
  • 举报
回复
引用 7 楼 Falleyes 的回复:
[quote=引用 5 楼 x000000xd 的回复:] [quote=引用 4 楼 Falleyes 的回复:]
#include<stdio.h>

void main()
{
	void daozhi(char a[], char b[]);
	char a[10], b[10];
	int i;

	for (i = 0; i <= 9; i++)
		scanf("%c", &a[i]);
	daozhi(a, b);
	for (i = 0; i <= 9; i++)
		printf("%c", b[i]);
}

void daozhi(char a[], char b[])
{
	int x, y = 9;
	for (x = 0; x <= 9; x++)
	{
		b[y] = a[x];
		y--;
	}
}
我明白了! 感谢前辈![/quote]哈哈哈,前辈谈不上,我今年秋天才大三![/quote] 我就比你小一年级,能力跟你差这么多,您能说说你对学c语言的心得体会吗? 启发小学弟
Falleyes 2014-05-10
  • 打赏
  • 举报
回复
引用 5 楼 x000000xd 的回复:
[quote=引用 4 楼 Falleyes 的回复:]
#include<stdio.h>

void main()
{
	void daozhi(char a[], char b[]);
	char a[10], b[10];
	int i;

	for (i = 0; i <= 9; i++)
		scanf("%c", &a[i]);
	daozhi(a, b);
	for (i = 0; i <= 9; i++)
		printf("%c", b[i]);
}

void daozhi(char a[], char b[])
{
	int x, y = 9;
	for (x = 0; x <= 9; x++)
	{
		b[y] = a[x];
		y--;
	}
}
我明白了! 感谢前辈![/quote]哈哈哈,前辈谈不上,我今年秋天才大三!
PIE 2014-05-10
  • 打赏
  • 举报
回复
单步调试,看内存。自己掌握的比别人说的强一万倍。
洪源 2014-05-10
  • 打赏
  • 举报
回复
引用 4 楼 Falleyes 的回复:
#include<stdio.h>

void main()
{
	void daozhi(char a[], char b[]);
	char a[10], b[10];
	int i;

	for (i = 0; i <= 9; i++)
		scanf("%c", &a[i]);
	daozhi(a, b);
	for (i = 0; i <= 9; i++)
		printf("%c", b[i]);
}

void daozhi(char a[], char b[])
{
	int x, y = 9;
	for (x = 0; x <= 9; x++)
	{
		b[y] = a[x];
		y--;
	}
}
我明白了! 感谢前辈!
Falleyes 2014-05-10
  • 打赏
  • 举报
回复
#include<stdio.h>

void main()
{
	void daozhi(char a[], char b[]);
	char a[10], b[10];
	int i;

	for (i = 0; i <= 9; i++)
		scanf("%c", &a[i]);
	daozhi(a, b);
	for (i = 0; i <= 9; i++)
		printf("%c", b[i]);
}

void daozhi(char a[], char b[])
{
	int x, y = 9;
	for (x = 0; x <= 9; x++)
	{
		b[y] = a[x];
		y--;
	}
}
BuBu高打火机 2014-05-10
  • 打赏
  • 举报
回复
对数组进行初始化 char a[10] = {'\0'}; char b[10] = {'\0'};
Falleyes 2014-05-10
  • 打赏
  • 举报
回复
引用 1 楼 Falleyes 的回复:
字符串数组是以'\0'作为结束的,那么你倒置复制就会把b的第一个字符赋值为'\0'
抱歉,看错了,你在主函数中并没有执行daozhi函数啊
Falleyes 2014-05-10
  • 打赏
  • 举报
回复
字符串数组是以'\0'作为结束的,那么你倒置复制就会把b的第一个字符赋值为'\0'

69,371

社区成员

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

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