数据结构的编程题C语言,C语言数据结构编程题.docx

void con vert(i nt *result, int n) {

if(n>=10)

con vert(result+1, n/10);

*result = n %10;

}

int main (i nt argc, char* argv[]) {

int n = 123456789, result[20]={};

conv ert(result, n);

prin tf("%d:", n);

for(i nt i=0; i<9; i++)

prin tf("%d", result[i]);

}

2、求高于平均分的学生学号及成绩(学号和成绩人工输入)

double fin d(i nt total, i nt n) {

int number, score, average;

scan f("%d", &nu mber);

if(number != 0) {

sca nf("%d", &score);

average = fin d(total+score, n+1);

if(score >= average)

prin tf("%d:%d\n", nu mber, score);

retur n average;

} else {

printf("Average=%d\n", total/n);

return total/n;

}

}

int main (i nt argc, char* argv[]) {

fin d(0, 0);

}

3、递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的 简单程序)

int find(char *str, int n) {

if(n<=1) return 1;

else if(str[O]==str[ n-1])return fin d(st r+1, n-2);

elsereturn 0;

}

int main (i nt argc, char* argv[]) {

char *str = "abcdedcba";

printf("%s: %s\n", str, find(str, strlen(str)) ? "Yes" : "No");

}

4、组合问题(从M个不同字符中任取N个字符的所有组合) void find(char *source, char *result, int n) {

if(n==1) {

while(*source)

prin tf("%s%c\n", result, *source++);

} else {

int i, j;

for(i=0; source[i] != 0; i++);

for(j=0; result[j] != 0; j++);

for(; i>=n; i--) {

result[j] = *source++;

result[j+1] = '\0';

fin d(source, result, n-1);

}

}

}

int main (i nt argc, char* argv[]) {

int const n = 3;

char *source = "ABCDE", result [n+1] = {0};

if(n>0 && strle n( source)>0 && n<=strle n( source))

fin d(source, result, 3);

}

5、分解成质因数(如 435234=251*17*17*3*2,据说是华为笔试题)

void prim(i nt m, int n) {

if(m >n) {

while(m%n != 0) n++;

m /= n;

prim(m, n);

prin tf("%d*", n);

}

}

int main (i nt argc, char* argv[]) {

int n = 435234;

prin tf("%d=", n);

prim(n, 2);

}

6寻找迷宫的一条出路,o:通路;X :障碍。(大家经常谈到的一个小算法 题)

#defi ne MAX_SIZE 8

int H[4] = {0, 1, 0, -1};

in t V[4] = {-1,0, 1, 0};

char Maze[MAX_SIZE][MAX_SIZE] = {{'X','X','X','X','X','X','X','X'},

{'o','o','o','o','o', 'X','X','X'},

{'X','o','X','X','o', X,'X','o'},

{'X','o','X','X','X','X', X,'X'},

{'X','o','X','X','o','o','o','X'},

{'X','o','o','o','o','X','o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值