C语言复习福利值得拥有
1.isPrime(y)函数(判断一个正整数是否为素数)
int isPrime(int y)
{int i=2;
while(i<=y/2){if(y%i==0)return 0;else i++;}
return 1;}[如果为真(素数)返回值为1,否则返回0)
2.将一个整数n从低位到高位逆序输出
··(输入n省略)
while(n!=0){printf( “%d”,n%10);n/=10;}
3.递归法输出斐波那契数列第n项
int fib(int n)
{ if(n==1) return 1;
if(n==2) return 1;
else return fib(n-1)+fib(n-2);]
4.将一个整数n从高位到低位分别输出(1) 逆序存放在数组中后使用数组换位
int i=0j=0,t,a[80l;while(n!=0)
{ali]=n%10; n/=10; i++;]
i--
while(j<i/2)
{t=a[j+i-1];alj+i-1]=aljl; aljl=t;]
(2) 先求出位数再逆序输出
int a,i=1,m,x,n,y;scanf("%d",&a);while (m!=0){m=a/pow(10,i); i++;}x=a;
for(i=i-1;i>0;i--){y=pow(10i-1); printf("%d\t",n);x=x%y;}
5,冒泡法排序n个数(从小到大)
·-·(数组输入ali]省略)
for(j=1;j<n;j++)for(i=0;i<=n-j;i++)if(al[i]>a[i+1]){t=a[il; ali]=a[i+1]; a[i+1]=t;]
6.选择法排序(从小到大)
for(i=0;i<n;i++)
( k=i;
for(j=i+1;j<n;j++)if(alj]<a[k]) k=j;
if(i!=k)
(x=a[il;a[i]=a[k]; a[k]=x;}
7.删除指定字符
void abc(char str[], char c){ int a,b;
for(a=b=0,str[a]!=’10’;a++)if(str[a]!=c)
str[b++]=str[al;
str[b]=’10’;}
8.与continue与break相关的例题
#include<stdio.h>void main(){char s[]=”ABCCDA”int k; char c;for(k=1;c=s[k];k++){
switch(c)
{ case'A'’: putchar(%); continue;
case'B': ++k; break;
default: putchar(*);
case'c: putchar(&); continue;]
putchar(#);}