以前写过一篇关于数组长度的文章,经过某位好友的指点,知道了新的解决方法了
 /**//*******************************************
T *a[n]和T (*a)[n]的区别
---------
T *a[n] 数组内存放n个T型指针
T (*a)[n] 存放n个T型元素的数组
指针a指向这个数组//a为二级指针


---------------------------------------
T &a[n]与T (&a)[n]的区别
---------
T &a[n] [退化为指针]
T (&a)[n] 存放n个T型元素的数组的引用

********************************************/

#include<iostream>
using namespace std;

int insertsort(int (&a)[10])//防止了指针退化
  {
int j, key;
for(int i=1; i<sizeof(a)/sizeof(int); i++)
 {
key = a[i];
j = i - 1;
while (a[j]>key && j>=0)
 {
a[j+1] = a[j];
j--;
}
a[j+1] = key;
}
return (0);
}
int main()
  {
 int a[10] = { 2 , 6 , 9 , 3 , 5 , 8 , 1 , 6 , 3 , 8 } ;
insertsort(a);
for(int i = 0; i<sizeof(a)/sizeof(int); i++)
cout<<a[i]<<'\t';
system("pause");
return(0);
}

但必需知道数组的长度,int(&a)[10]中的10必需说明!所以如果未知数组长度,必需先要求得! 再次受高手指点,使用模版解决了n传递的问题
template<class T,int n>
T insertsort(T (&a)[n])//防止了指针退化
  {
T j=T();
T key=T();
for(int i=1; i<n; i++)
 {
key = a[i];
j = i - 1;
while (a[j]>key && j>=0)
 {
a[j+1] = a[j];
j--;
}
a[j+1] = key;
}
return T();
}
我要继续努力ing,好多知识有待熟悉额
1. 计算机专业硕士及以上学历
2. 至少3年软件开发经验
3. 精通C/C++、Win32、Unix/Linux开发,特别是ACE技能,熟悉Perl、unix shell脚本、Java和Oracle
具有RTP/RTCP、SIP、H323、VoIP和NGN相关经验
熟悉设计模式、OOD和UML
熟悉软件工程,具有CMM/CMMI经验者优先
良好的分析和解决复杂问题的能力,善于沟通,有团队精神
4. 通过英语CET-6
先看看,暑假打算了解一下一些职位的要求,也好对自己的学习有个指导!大家觉得呢?
满足d=gcd(a,b)=ax+by gcd(b,a%b)=bx'+(a%b)y'=bx'+(a-(a/b)b)y'=bx'+ay'-b(a/b)y'=ay'+b(x'-(a/b)y') 只需满足 x=y' y=x'-(a/b)y'
//d=gcd(a,b)=ax+by
#include<iostream>
using namespace std;
int extEuclid(int a,int b,int&x,int&y)
  {
int d,tmp;
 if(!b) {x=1;y=0;return a;}
d=extEuclid(b,a%b,x,y);
tmp=x;
x=y;
y=tmp-(a/b)*y;
return d;
}

 int main() {
int a,b,x=0,y=0;
cin>>a>>b;//99 78
cout<<extEuclid(a,b,x,y)<<'\t'<<x<<'\t'<<y;
//system("pause");
return 0;
}

奇怪的是VC6.0编译通过后执行,无论如何x和y的值始终为0。而用dev-c++编译通过后显示结果正常! 如果将输出改为
cout<<extEuclid(a,b,x,y)<<endl;
cout<<'\t'<<x<<'\t'<<y;
VC6.0编译后运行也就显示正常了! I DON'T KNOW WHY?
//(a^b)%n
#include<iostream>
//这里用的是什么方法呢?
int modExp(int a,int b,int n)
  {
int t=1,y=a;
while(b)
 {
if(b%2==1)t=t*y%n;
y=y*y%n;
b=b/2;
}
return t;
}
//常规
int modexp(int a,int b,int n)
  {
int t=1;
for(int i=0;i<b;i++)t=t*a;
return t%n;
}

int main(void)
  {
int a=0,b=0,n=0;
std::cin>>a>>b>>n;
std::cout<<modExp(a,b,n)<<std::endl;
std::cout<<modexp(a,b,n)<<std::endl;
return 0;
}

谁能给我讲讲它这个方法是什么数学原理呢? //第二个函数仅为测试正确性设置,不考虑溢出问题
//非递归辗转相除求最大公约数
int gcd(int a,int b)
  {
int r=0;
r=a%b;
while(r)
 {
a=b;
b=r;
r=a%b;
}
return b;
}
//最小公倍数
int lcm(int a,int b)
  {
return (a*b)?a*b/gcd(a,b):0;
}
一些比较好的参考书籍,如果你有更好的资源,请分享一下啊!呵呵
科目
|
国内书籍
|
国外书籍
|
国内作者
|
国外作者
|
高等数学
|
数学分析新讲
|
微积分学教程
|
张筑生
|
菲赫金哥尔茨
|
数学分析
|
|
复旦大学
|
|
高等代数
|
高等代数
|
|
林成森/盛松柏
|
|
代数学
|
|
莫宗坚
|
|
概率论与数理统
|
|
|
|
|
计算方法学
|
计算方法(Computational Methods)
|
|
华中理工大学数学系
|
|
离散数学
|
基础集合论
|
|
北师大
|
|
面向计算机科学的数理逻辑
|
|
陆钟万
|
|
图论及其算法
|
图论及其应用
|
王树禾
|
Bondy &
Murty
|
|
具体数学
|
|
Graham和Knuth
|
初等数论
|
Introduction to Algorithmic Number Theory
|
潘氏兄弟著
|
Bach
|
数论导引
|
华罗庚
|
形式语言与自动机
|
|
|
|
|
汇编语言和微机原理
|
计算机组成与结构
|
|
王爱英
|
|
IBM—PC汇编语言程序设计
|
|
沈美明
|
|
数字逻辑
|
数字逻辑
|
|
刘英娴
|
|
计算机系统结构
|
操作系统的内核设计与实现
|
|
|
|
现代操作系统
|
|
|
|
操
作系统
|
|
张尧学
|
|
Windows
操作系统原理
|
|
张尧学
|
|
编译原理
|
|
编译原理及实践
|
|
Kenneth C.Louden
|
数据库
|
数据仓库
|
Database System Concepts"
|
|
Abraham Silberschatz
|
人工智能
|
人工鱼—计算机动画的人工生命方法
|
|
涂晓媛
|
|
网络协议
|
计算机网络教程
|
|
谢希仁
|
|
|