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]);
}

编译出来是什么样的?详细过程!
...全文
132 10 打赏 收藏 转发到动态 举报
写回复
用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函数,只不过是一个替换的函数,在这里完成了前后交换。
逻辑树又称问题树、演绎树或分解树等。麦肯锡分析问题最常使用的工具就是“逻辑树”。 逻辑树是将问题的所有子问题分层罗列,从最高层开始,并逐步向下扩展。把一个已知问题当成树干,然后开始考虑这个问题和哪些相关问题或者子任务有关。每想到一点,就给这个问题(也就是树干)加一个“树枝”,并标明这个“树枝”代表什么问题。一个大的“树枝”上还可以有小的“树枝”,如此类推,找出问题的所有相关联项目。逻辑树主要是帮助你理清自己的思路,不进行重复和无关的思考。逻辑树能保证解决问题的过程的完整性;它能将工作细分为一些利于操作的部分;确定各部分的优先顺序;明确地把责任落实到个人。逻辑树是所界定的问题与议题之间的纽带;它能在解决问题的小组内建立一种共识。 麦肯锡式逻辑思考术 学会逻辑思考,有逻辑,才有脑袋;切分问题、厘清因果,用证据推导出结论。 工具1:金字塔原理 归纳杂乱的现象,提出一目了然的观点 工具2:MECE原则(彼此独立,互无遗漏) 资料分类不牴触、不遗漏,是论点正确的前提 工具3:「So What?/Why So?」原则 说明结论与证据的关联,完整表达推论过程 工具4:事实基础+假设基调 预先假设、迅速验证,提升思考速度 工具5:逻辑树形图 拆解问题成因,找出因应对策 工具6:七何分析法(5W2H) 从各种角度想问题,面面俱到、事半功倍 工具7:80/20法则分析 资源集中在关键点,提高效率与效能 用逻辑思考,轻松解决问题;用“逻辑树”探究因果关系,归纳现象,找出“问题到底在哪里?” 假设可能解决方案,尽速验证可行性;分析资料、合理推论,找出最终解;打破框架,发散与收敛,破除思考盲点;培养洞见,抽象归纳、具体分析,看见别人看不见的案。

64,654

社区成员

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

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