您现在的位置:首页 >> 经验技巧 >> 内容

C语言常用的几个问题的算法和程序

时间:2012-9-22 12:13:45 点击:

  核心提示:C语言常用的几个问题的算法和程序:1.输入并运行以下判断一个数是否为素数(即质数)的程序:main(){ int i,x; printf('Enter a Number:\n'); scanf('%d',x); for(i=2; ix; i......
C语言常用的几个问题的算法和程序:
1.输入并运行以下判断一个数是否为素数(即质数)的程序:
main()
{   int  i,x;
    printf("Enter a Number:\n");
        scanf("%d",&x);
        for(i=2; i<x; i++)
        {  if(x%i==0) break;
        }
        if(i= =x) printf("YES\n");
        else  printf("NO\n");
}   想想看,如果将for(i=1;i<x;i++)中的x改为(int)sqrt(x)可不可以,可以的话其他哪些地方也要作相应改动并且程序要增加什么东西
2.排序函数,要求能熟练掌握:(注:以下排序算法中,至少要熟练掌握一种)
(1)简单选择排序(从小到大):
#define N 10
#include "stdlib.h"
void arrsort(int a[],int n);
main()
{ int  m[N],i;
  for(i=0;i<N;i++)     m[i]=random(100);
  for(i=0;i<N;i++)     printf("%d  ",m[i]);
  printf("\n");    
arrsort(m,N);   
printf("After Sorted:\n");
  for(i=0;i<N;i++)     printf("%d  ",m[i]);
  printf("\n");
}
void  arrsort(int  a[], int  n)
{   int   i,j,p,t;
    for(i=0;  i<n-1;  i++)
    {
       for(j=i+1;j<n;j++)
   if(a[j]<a[i])  {t=a[i];a[i]=a[j];a[j]=t;}
    }
}
(2)优化的选择排序(从小到大):(以下(2)-(4)均省略main函数)
void  arrsort(int  a[], int  n)
{   int   i,j,p,t;
for(i=0;  i<n-1;  i++)
{   p=i;
for(j=i+1; j<n; j++)
               if(a[p]>a[j]) p=j;
        if(p!=i)
            { t=a[i]; a[i]=a[p]; a[p]=t;}
}
}
(3)冒泡排序(从小到大):
void  arrsort(int  a[], int  n)
{   int   i,j,p,t;
for(i=n-1;  i>0;  i--)
{   for(j=0; j<i; j++)
               if(a[j+1]<a[j])  { t=a[j]; a[j]=a[j+1]; a[j+1]=t;}
}
}
(4)插入排序(从小到大):
void  arrsort(int  a[], int  n)
{   int i,j,t;
    for(i=1;i<n;i++)
    { t=a[i];
      for(j=i-1;j>=0;j--)
        if(t<a[j])  a[j+1]=a[j];
        else break;
      a[j+1]=t;
    }
}

作者:不详 来源:网络
  • 上一篇:没有了
  • 下一篇:二级公共基础复习策略
  • 相关文章
    • 没有相关文章
    共有评论 0相关评论
    发表我的评论
    • 大名:
    • 内容:
  • 百斯特教育(www.bestcnedu.cn) © 2018 版权所有 All Rights Reserved.
  • Email:bestcnedu@163.com 电话:4000885996,0471-3818386 蒙ICP备09003591号
  • Powered by Bestcnedu.cn