配色: 字号:
咱们的必记程序
2016-01-10 | 阅:  转:  |  分享 
  
程序要求:

1. 判断某一个数是否是质数(P209)(质数是除了1和它本身外再也没有一个数能被它整除的整数)

#include"stdio.h"

main()

{inti,j;

printf("请输入要判断的数:\n");

scanf("%d",&i);

for(j=2;j
if(i%j==0)

break;

if(j
printf("%d不是质数",i);

else

printf("%d是质数",i);

}





2. 输出2至99范围内的质数





3. 判断某一个数是否是水仙花数(P210)(水仙花数是一个三位整数,其各位数字立方和等于该数本身。比如153是一个水仙花数,因为153=111+555+333)

#include"stdio.h"

main()

{inti,j,k,n;

printf("请输入要判断的数\n");

scanf("%d",&n);

if(n<100||n>999)

printf("输入的数据错误\n");

else{i=n%10;

j=n/10%10;

k=n/100;

if(iii+jjj+kkk==n)

printf("%d是水仙花数\n",n);

else

printf("%d不是水仙花数\n",n);}

}

4. 输出100至999范围内的水仙花数

#include"stdio.h"

main()

{inti,j,k,n;

for(n=100;n<=999;n++)

{i=n%10;

j=n/10%10;

k=n/100;

if(iii+jjj+kkk==n)

printf("%d是水仙花数\n",n);}



}

5. 判断某一个数是否是完数(P211)(完数是指一个数恰好等于它的因子之和,例如6的因子是1,2,3。而6=1+2+3因此6是完数)

#include"stdio.h"

main()

{inti,j,s;

scanf("%d",&i);

s=0;

for(j=1;j
if(i%j==0)

s=s+j;

if(s==i)

printf("%d是完数\n",i);

else

printf("%d不是完数\n",i);

}



6. 输出2至99范围内完数。

#include"stdio.h"

main()

{inti,j,s;

for(i=2;i<100;i++){

s=0;

for(j=1;j
if(i%j==0)

s=s+j;

if(s==i)

printf("%d是完数\n",i);

}



}



7. 从键盘上输入十个实型数据,求他们的总和,平均值,最大值,最小值(P126)

#include"stdio.h"

main()

{floatmax,min,sum,avg;

inti,sz[10];

printf("输入十个数\n");

for(i=0;i<10;i++)

scanf("%d",&sz[i]);

max=sz[0];

for(i=1;i<10;i++)

if(max
max=sz[i];

min=sz[0];

for(i=1;i<10;i++)

if(min>sz[i])

min=sz[i];

for(i=0;i<10;i++)

{sum=sum+sz[i];

avg=sum/10;}

printf("max=%f,min=%f,sum=%f,avg=%f",max,min,sum,avg);

}



8. 用冒泡排序给10个整数排序(P221)(冒泡法的思路:以升序排列为例,将相邻两个数比较,如果前一个数大于后一个数,则交换两数,以此类推,一趟完毕最大的数放在最后。第二趟重复这样的操作,把次大的数放在倒数第二的位置。)

#include"stdio.h"

#defineN10

main()

{inta[N];

inti,j,t;

for(i=0;i
scanf("%d",&a[i]);

for(j=0;j
for(i=0;i
if(a[i]>a[i+1])

{t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

for(i=0;i
printf("%d",a[i]);

}



9. 用选择排序给10个整数排序(P222)(选择排序法的思路:以升序排列为例,首先在一组数种找到最小数及其位置,然后和第1个数交换,然后在除开第一个数剩下的数种再找出最小数及其位置,并与第二个位置上的数进行交换,以此类推完成一组数的排序)

#include"stdio.h"

#defineN10

main()

{inta[N];

intmin,pos;

inti,j;

printf("请输入原始数组\n");

for(i=0;i
scanf("%d",&a[i]);

for(i=0;i
{min=a[i];

pos=i;

for(j=i+1;j
if(a[j]
{min=a[j];

pos=j;

}

a[pos]=a[i];

a[i]=min;

printf("经过%d次排序后,数组便化为\n",i+1);

for(j=0;j
printf("%d",a[j]);

}

}

10. 用顺序查找法在一组数中定位指定的数(P226)(其思路是:把要查找的数从给定的一组数的第一个数开始,逐个与要查找的数据进行比较,若某个数与待查找的数相等,则查找成功。如果直到最后一个也没有相等的,则说明这组数中没有待查找的数据。)

#include"stdio.h"

#defineN10

main()

{inta[N];

intx,i;

printf("请输入十个整数\n");

for(i=0;i
scanf("%d",&a[i]);

printf("请输入要查找的数\n");

scanf("%d",&x);

for(i=0;i
if(a[i]==x)

break;

if(i
printf("找到%d位于数组的第%d位",x,i+1);

else

printf("没有找到\n");

}

11. 用二分查找法在一组数中定位指定的数(P227)(其思路是先把数组从中间分成两段,把待查找的数据与数组中间点元素进行比较,如果相等,则找到所需要的数,否则可以确定待查找的数据在前半段或是后半段。在确定了查找范围后,又按照相同的方式一分为二,进行比较判定是否找到或者确定下一轮的查找范围,直到查找到要查找的数据或者判定为没有要找的数据)

#include"stdio.h"

#defineN10

main()

{inta[N];

inti,j,mid,high=0,low=9,loca=0;

printf("请输入十个整数\n");

for(i=0;i
scanf("%d",&a[i]);

printf("请输入要查找的数\n");

scanf("%d",&j);

if(ja[9])

loca=-1;

while(loca==0&&high<=low)

{mid=(high+low)/2;

if(j==a[mid])

{loca=mid;

printf("找到%d位于数组的%d位:\n",j,loca+1);

break;}

else

if(j
low=mid-1;

else

high=mid+1;

if(loca==-1)

printf("%d不在表中\n");



}

}



12. 从键盘输入一个十进制整数,把它转化成二进制并输出(P135)

#include"stdio.h"

main()

{inta,e[10],c,i=0;

printf("请输入一个正整数\n");

scanf("%d",&a);

while(a!=0)

{c=a%2;

a=a/2;

e[i]=c;

i++;

}

for(;i>0;i--)

printf("%d",e[i-1]);

}

13. 从键盘输入一串字符串,找到其中的数字字符并输出

#include"stdio.h"

main()

{inti,j=0,s;

charm[100];

gets(m);

for(i=0;m[i]!=''\0'';i++){

if(m[i]>=''0''&&m[i]<=''9'')

{

s=m[i]-48;

j=j10+s;}

}

printf("%d",j);

}



插入一个数至有序数组中\n

#include"stdio.h"

main(){

inta[20]={13,24,29,36,41,46,52,54,56,58,60,62,65,70,82},i,j,x,temp1,temp2,max;

printf("请输入要插入的数:");

scanf("%d",&x);

for(i=0;i<20;i++)

if((a[i]>x)&&(a[i-1]
temp1=a[i];

a[i]=x;

temp2=i;

break;}

else

if(a[14]
a[15]=x;

for(j=i+1;j<20;j++)

{temp2=a[j];

a[j]=temp1;

temp1=temp2;}

for(i=0;i<20;i++)

printf("%d",a[i]);

}

献花(0)
+1
(本文系借一间藏书...首藏)