- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 
                        查看更多
                        
                    
                二级C语言算法(201206)
1.变量交换
void swap1(int *x, int *y) 
{  int temp;
   temp=*x; *x=*y; *y=temp;
}
void swap2(int *x, int *y)
{  int *temp;
   *temp=*x; *x=*y; *y=*temp;
}
void swap3(int x, int y)
{  int temp;
   temp=x; x=y; y=temp;
}
 
2.累加用C语言实现1+2+3+4+5++n的累加。
【方法1】while循环实现
int add(int n)
{  int i,sum;
   sum=0; i=1;
   while(i=n)
   {  sum=sum+i; i=i+1;    return sum;
}
main()
{  int s,n;
    printf(\nInput n:\n);
    scanf(%d,n);
    s=add(n);              /*函数调用*/
    printf(1+2+...+%d=%d\n,n,s);
}
【方法2】for循环实现int add(int n)
{  int i,sum=0;
   for(i=1;i=n;i++) sum=sum+i;  
   return sum;
}
do-while循环也可以实现累加请读者自己完成。
累乘用C语言求n的阶乘:n! = 1(2(3(4((n (n≥1)
int product (int n)
{   int i,p=1;
    for(i=2;i=n;i++) p=p*i;
    return p;
 }
如果n的值比较大,函数返回值和存放乘积的变量p应定义为。
排序(1)冒泡排序  
void BubbleSort(int a[],int n)
{  int i,j, tmp;
   for(i=0;in-1;i++)                   		/*排序趟次*/
   {  for(j=0; jn-1-i; j++)           /*从前往后比*/
      if(a[j]a[j+1])                		/*从小到大升序*/
	  { tmp=a[j]; a[j]=a[j+1]; a[j+1]=tmp;}/*交换a[j]与a[j+1]大数后移*/
   }
}
(2)选择排序  
void SelectSort(int a[],int n)
{  int i,j,min,tmp;
   for(i=0; in-1; i++)
   {   min=i;                 /*假设第一个数最小,记录其下标*/
       for(j=i+1; jn; j++)
          if(a[j]a[min])  min=j;/*找最小的,将最小数的下标记录下来*/
       if(i!=min)
      { tmp=a[i]; a[i]=a[min]; a[min]=tmp; } /*将最小的数与第一个数进行交换*/
   }
}
(3)插入排序  
void InsertSort(int a[],int n)
{  int i,j,tmp;  
   for(i=1; in; i++)
   {  tmp=a[i];                     /* 空出a[i]单元 */
    for(j=i-1; j=0  a[j]tmp; j--)
         a[j+1]=a[j];               			/* 大于tmp的数向后移位 */
    a[j+1]=tmp;                   			/* tmp归位 */ 
   }
}
归并合并将两个有序数组A、B合并成另一个有序的数组C(升序或降序)。步骤如下:
先在A、B数组中各取第一个元素进行比较,将小的元素放入C中。
取小的元素所在数组的下一个元素与另一个数组中上次比较后较大的元素比较。
重复上述比较过程,直到某个数组被先排完。
将另一个数组剩余元素抄入C中,合并排序完成。
void merge(int a[],int b[n],int n,int c[])
{  int ia=0,ib=0,ic=0;
   while(iam  ibn)
   {   if (a[ia]b[ib])     					/*小的元素放入C中*/{ c[ic]=a[ia];ia++; }  
       else  { c[ic]=b[ib];ib++; }
       ic++;
   }
while(iam) { c[ic
                您可能关注的文档
最近下载
- 第五单元第1课《多变的镜头》课件 2024—2025学年人美版(2024)初中美术七年级上册+.pptx VIP
 - 四川省2025年高职单招文化考试(中职类)语文试卷+答案 .pdf VIP
 - 【议题式】第五课 在和睦家庭中成长 课件 -2026新高考思想政治一轮复习.pptx VIP
 - 施工应急预案应急反应预案.docx VIP
 - 机械设备销售代理授权委托协议书(1范本).docx VIP
 - 高考语文作文纸3栏(电子版可打印)A3.pdf
 - 幼儿园科普知识章鱼课件.pptx VIP
 - 统编版二年级语文上册单元作文能力提升第1单元:有趣的动物(素材积累).docx VIP
 - 部编版语文九年级下册《诗词曲五首 山坡羊潼关怀古》课件.pptx VIP
 - ICH指导原则文件目录(中英文) .pdf VIP
 
原创力文档
                        

文档评论(0)