why?求解答过程!

你敢爱我咩 2014-03-03 06:07:53
#include<stdio.h>
#define SIZE 12
sub(char*a,int t1,int t2)
{
char ch;
while (t1<t2)
{
ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;
t2--;
}
}
main()
{
char s[SIZE];
int I;for(I=0;I<SIZE;I++)
s[I]='A'+I+321;
sub(s,7,SIZE-1);
for(I=0;I<SIZE;I++)
printf("%c",s[I]);
}

编译出来是什么样的?详细过程!
...全文
139 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-03-07
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试是程序员必须掌握的技能之一。
百曉生 2014-03-06
  • 打赏
  • 举报
回复
懂了就好,以后要仔细啊!编程这玩意儿,马虎不得
你敢爱我咩 2014-03-06
  • 打赏
  • 举报
回复
引用 6 楼 u012421456 的回复:
# include <stdio.h> 
#define SIZE 12

void sub(char * a, int t1, int t2) 
{ 
	char ch;  
    while (t1 < t2) 
	{ 
		ch = *(a+t1); 
        *(a+t1) = *(a+t2); 
        *(a+t2) = ch; 
        t1++;
		t2--; 
	} 
}

void main() 
{ 
	char s[SIZE]; 
	int I;

	for(I=0; I<SIZE; I++)  
		s[I] = 'A'+I+32;   //这里该是32,不该是321
    sub(s, 7, SIZE-1); 

    for(I=0; I<SIZE; I++)  
		printf(" %c ",s[I]); 
} 
懂啦。谢谢了!哈哈哈。
百曉生 2014-03-03
  • 打赏
  • 举报
回复
百曉生 2014-03-03
  • 打赏
  • 举报
回复
# include <stdio.h> 
#define SIZE 12

void sub(char * a, int t1, int t2) 
{ 
	char ch;  
    while (t1 < t2) 
	{ 
		ch = *(a+t1); 
        *(a+t1) = *(a+t2); 
        *(a+t2) = ch; 
        t1++;
		t2--; 
	} 
}

void main() 
{ 
	char s[SIZE]; 
	int I;

	for(I=0; I<SIZE; I++)  
		s[I] = 'A'+I+32;   //这里该是32,不该是321
    sub(s, 7, SIZE-1); 

    for(I=0; I<SIZE; I++)  
		printf(" %c ",s[I]); 
} 
你敢爱我咩 2014-03-03
  • 打赏
  • 举报
回复
引用 4 楼 czarten 的回复:
[quote=引用 3 楼 u013588893 的回复:] 题库里的答案是a b c d e f g l k j I h 怎么来的?
s[I]='A'+I+321; 你这321是什么?加上去直接破表了啊[/quote] 不晓得噢。题库里的,是不是出错题了?
你怎么了熊吉 2014-03-03
  • 打赏
  • 举报
回复
引用 3 楼 u013588893 的回复:
题库里的答案是a b c d e f g l k j I h 怎么来的?
s[I]='A'+I+321; 你这321是什么?加上去直接破表了啊
你敢爱我咩 2014-03-03
  • 打赏
  • 举报
回复
引用 2 楼 u013588893 的回复:
[quote=引用 1 楼 neustar1 的回复:] 额,怎么能说是编译出来是什么样啊,编译出来是可执行文件,二进制代码。 你问的是结果是什么吧,结果是一堆乱码。 为啥,我也想知道为啥,为啥你数组s那样赋值呢?你那样赋值搞出来的字符不一定是可显示的字符,所以是乱码。 至于sub函数,只不过是一个替换的函数,在这里完成了前后交换。
是计算机二级题库里的。。。不会做,所以贴过来想让大神帮忙解答。。。[/quote] 题库里的答案是a b c d e f g l k j I h 怎么来的?
你敢爱我咩 2014-03-03
  • 打赏
  • 举报
回复
引用 1 楼 neustar1 的回复:
额,怎么能说是编译出来是什么样啊,编译出来是可执行文件,二进制代码。 你问的是结果是什么吧,结果是一堆乱码。 为啥,我也想知道为啥,为啥你数组s那样赋值呢?你那样赋值搞出来的字符不一定是可显示的字符,所以是乱码。 至于sub函数,只不过是一个替换的函数,在这里完成了前后交换。
是计算机二级题库里的。。。不会做,所以贴过来想让大神帮忙解答。。。
__cc__ 2014-03-03
  • 打赏
  • 举报
回复
额,怎么能说是编译出来是什么样啊,编译出来是可执行文件,二进制代码。 你问的是结果是什么吧,结果是一堆乱码。 为啥,我也想知道为啥,为啥你数组s那样赋值呢?你那样赋值搞出来的字符不一定是可显示的字符,所以是乱码。 至于sub函数,只不过是一个替换的函数,在这里完成了前后交换。

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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