所谓程序员,是指从事程序设计锋运、程序开发、程序维护的基层工作人员。
程序员包括两大类:
1,程序设计人员。
一个程序,就是一个系统。对于一个规模庞大的程序来说其结构非常复杂,各个部分的功能之间的衔接非常复杂,所以需要预先对整个系统的架构进行设计,程序设计人员的主要工作就是如此。
2,程序编码人员。
编码,也就是代码。……程序是由代码组成的。相应的,程序代码是由程序员一段一段编辑而成的。……因此,代码也就成为程序员业绩和能力的代表。
编程序、写代码,其核心就是算法。……掌握一套精密有效的算法,就能把一段程序编好,使其发挥出最佳功效。
从这个角度说,程序员所掌握的最厉害的工具,不是代码,而是算法。……代码对于程序员来说,只李闹是砖石一类的工具,而算法才是程序的核心。……一段程序,代码的生成很简单,但是其中包含的算法却是非常深奥的。……因此,设计出一套算法,对于程序员来说才是最关键的事情。
从这个角度说,程序员最厉害的并不是拥有一段代码,而是掌握一套算法。
另外,程序员这份工作其实也有不同的分工。并不是所有的程序员都要敲代码的。……实际上,程序员工作职责涵盖面非常广泛。以下几方面工作,都属于程序员的工作职责:
1,负责软件的设计、开发、测试。
2,与客户进行沟通,明确客户需求。
3,项目调研、可行银扰梁性分析。
4,解决软件开发和维护过程中的各种问题。
5,对本专业领域范围内的技术动态进行跟踪分析。
由此可以看出,程序员并不全都是敲代码的人,还有很多程序员是负责软件系统相关工作的人。……当然了,虽然因为分工不同,有些程序员不写代码,但是他们肯定是能够看得懂代码,并有能力修正其中的问题的。……他们当中的每个人都对于某个具体领域的算法非常擅长,这就是他们的绝招,是他们实力最强的领域。
先给你第一题的,百度知道的这个编辑器真的不适合粘贴代码
#include<stdio.h>
#include<string.h>
#define MAX_ARRAY_SIZE 1024
#define MAX_MAP_SIZE 10
/* 输入数组,连续输入,如:aedabcdaeas */
int inputArray(char *buff) {
int len = 0
/* 使用fgets来防止缓冲区溢出 */
if (NULL == fgets(buff, MAX_ARRAY_SIZE, stdin)) {
return 0
}
len = strlen(buff)
/* fgets 返回的数据可能是换行符结尾的,也可能不是,对换行符结尾的进行处理 */
if (buff[len - 1] == '\n') {
buff[len - 1] = '\0'
len -= 1
}
return len
}
int processArray(int len, char *chars, char *map) {
/* 保存反向映射便于查找 */
int tmap[128]
int maplen = 0
int i = 0
char *p = chars
memset(tmap, -1, sizeof(int) * 128)
for (i = 0i <leni++) {
if (*p >'z' || *p <'a') {
return -*p
}
if (tmap[*p] == -1) {
if (maplen >= MAX_MAP_SIZE) {
return -1
}
厅举 tmap[*p] = maplen
map[maplen] = *p
maplen += 1
}
*p = '0' + tmap[*p]
p++
}
return maplen
}
int main() {
/* 用于输入的字符数组 */
char buff[MAX_ARRAY_SIZE]
/* 用于保存转换规则的数组 */
char map[MAX_MAP_SIZE]
/* 保存字符数组长度 */
int len = 0
int maplen = 0
int i = 0
len = inputArray(buff)
if (len <= 0) {
puts("Cancelled")
} else if (len <10) {
扮亮碧 puts("Not enough 10 chars")
} else {
maplen = processArray(len, buff, map)
if (maplen >= 0) {
键滚 puts("转换结果:")
for (i = 0i <leni++) {
printf("%c ", buff[i])
}
puts("")
puts("映射规则:")
for (i = 0i <mapleni++) {
printf("%c ->%d\n", map[i], i)
}
puts("")
} else if (maplen == -1) {
puts("Different Chars count is OverLimit of 10")
} else if (maplen <= -2) {
printf("Unexpected char %c\n", -maplen)
}
}
return 0
}
执行结果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)