1. 程式人生 > 其它 >習題9(函式)

習題9(函式)

1、編寫函式intlen:功能為求任意整數的位數,即長度。

程式設計實現:對任意輸入的整數求其位數。

#include <stdio.h>

int intlen(long n)

{

int s,i;

for(i=0,s=n;s!=0;i++)

s=s/10;

return i;

}

void main()

{

long x;

printf("請任意輸入一個整數:");

scanf("%ld",&x);

printf("%ld是個%d數\n",x,intlen(x));

}


2、編寫函式fact:功能為求任意一個正整數的階乘

程式設計實現:求1!+3!+5!+7!+n!

#include <stdio.h>

int fact(int n)

{

int i,s=1;

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

{ s=s*i;

}

return s;

}

void main()

{

int i,x,sum=0;

printf("請輸入一個正整數:");

scanf("%d",&x);

for(i=1;i<=x;i+=2)

sum=fact(i)+sum;

printf("1!+3!+...的結果為:%d\n",sum);

}

3、編寫函式hui:功能為判斷一個正整數是否是迴文數

程式設計實現:對任意輸入的正整數判斷是否是迴文數

#include <stdio.h>

int hui(long num)

{

long s,first=0,end;

s=num;

while(s!=0)

{

end=s%10;

first=first*10+end;

s=s/10;

}

if(first==num)

return 1;

else

return 0;

}

void main()

{

long x;

printf("請輸入一個正整數:");

scanf("%ld",&x);

if(hui(x))

printf("%ld是個迴文數\n",x);

else

printf("%ld不是個迴文數\n",x);

}

4、編寫函式isprime:功能為判讀一個任意整數是否是素數。

程式設計實現:把任意一個正整數分解成兩個素數之和。

#include <stdio.h>

#include <math.h>

int isprime(int n)

{

int i=2;

while(i<sqrt(n))

{

if(n%i==0)

return 0;

i++;

}

return 1;

}

void main()

{

int sum,i,j,n;

printf("請輸入一個大於2的整數:");

scanf("%d",&n);

if(n>=2)

{

for(i=2;i<n/2;i++)

{

j=n-i;

if(isprime(i)&&isprime(j))

{

sum=i+j;

printf("%d分解後的素數對之和為:%d=%d+%d\n",n,sum,i,j);

}

}

}

}

5、編寫函式level:功能為求密碼等級。

密碼等級規則是以下要求滿足一條等級就加1有數字、有大寫字母、有小寫字母、有標點、長度大於6;最高密碼等級為5。

程式設計實現:任意輸入一個密碼,根據等級輸出提示資訊,若等級是1或2則輸出“您密碼設定弱,請更改密碼!”;若等級是3或4則輸出“您密碼設定較強,還可以更改密碼讓其更強!”;若等級是5則輸出“您密碼設定很強,請繼續保持!”。

#include <stdio.h>

char level (char n[128])

{

int i,count;//count是統計等級

int x1=0,x2=0,x3=0,x4=0,x5=0;//1-5級

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

{

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

x1=1;

if(n[i]>='a'&&n[i]<='z')

x2=1;

if(n[i]>='A'&&n[i]<='Z')

x3=1;

if((n[i]>=32&&n[i]<=47)||(n[i]>=58&&n[i]<=40)||(n[i]>=91&&n[i]<=96)||(n[i]>=123&&n[i]<=126))

x4=1;

if(strlen(n)>6)

x5=1;

if(n[i]=='\n')

break;

}

count=x1+x2+x3+x4+x5;

switch(count)

{

case 1 :

printf("您密碼設定弱,請更改密碼!");

case 2 :

printf("您密碼設定弱,請更改密碼!");

break;

case 3 :

printf("您密碼設定較強,還可以更改密碼讓其更強!");

case 4 :

printf("您密碼設定較強,還可以更改密碼讓其更強!");

break;

case 5 :

printf("您密碼設定很強,請繼續保持!");

break;

default :

printf("您密碼設定弱,請更改密碼!");

}

}

void main()

{

char m[20];

printf("請輸入您的密碼:");

gets(m);

level(m);

}

小胖專屬學習分享