程序设计题
1
模拟库函数的算法strcmp(),编写函数实现两个字符串的字符串比较.
c
int strcompare( char* str1, char* str2);
直接实现指针的逐位比较即可:
c
int strcompare(char* str1, char* str2) {
while (*str1 != '\0' && *str2 != '\0') {
if (*str1 != *str2) {
return *str1 - *str2;
}
str1++;
str2++;
}
return *str1 - *str2;
}
我们注意到C的源代码中对库函数strcmp的实现或许更加优雅:
c
int strcmp(const char* s1, const char* s2) {
while (*s1 && (*s1 == *s2)) {
s1++;
s2++;
}
return *(const unsigned char*)s1 - *(const unsigned char*)s2;
}
2
编程序找出1至99之间的全部同构数。同构数是这样一组数:它出现在平方数的右边。例如:5是25右边的数,25是625右边的数,5和25都是同构数。
直接模拟即可,没啥难度:
c
结果是:
c
1 5 6 25 76
3
矩阵乘法C=A×BC=A×B,前提条件:A的列数等于B的行数,假定为M,则:
C[i,j]+=A[i][k]∗B[k][j]k=0,1…M−1C[i,j]+=A[i][k]*B[k][j]\quad k=0,1…M-1
下面程序中完成矩阵C=A×B计算和输出,给出相关函数的声明和定义。
c
也不难实现,同样是模拟:
c
本文是原创文章,采用 CC BY-NC-SA 4.0 协议,完整转载请注明来自 烧鸡
评论
隐私政策
0/500
滚动到此处加载评论...
