初學C語言,程序代碼只是單純的實現功能,並未考慮Bug問題。
--------------------------------------------------------------------------------------------------------------
1. 編寫程序,在主函數輸入m的值,在函數fun中計算如下公式的值並將結果返回到主函數中輸出:
例如,若輸入5,則應輸出-0.283333。
float fun(int m)
{
int i;
float result=1.0/2;
for(i=3;i<=m;i++)
{
result-=1.0/i;
}
return result;
}
2. 編寫程序,求下列公式P的值,並將求階乘編寫函數fun實現其功能。
P=
例如,m=12,n=8時,運行結果爲495.000000
#include<stdio.h>
long int fun(int m)
{
int i,result=1;
for(i=m;i>0;i--)
{
result*=i;
}
return result;
}
int main()
{
int m,n;
float re;
scanf("%d%d",&m,&n);
re=fun(m)/(fun(n)*fun(m-n));
printf("%f",re);
return 0;
}
計算那裏也可以做個函數
3. 編寫程序,在主函數中輸入兩個兩位數的正整數a和b,定義fun函數合併這兩個正整數形成一個新的正整數放到c中,並返回給主函數輸出。合併的方式是:將a中的十位和個位依次放在變量c的十位和千位上,b中的十位和個位數依次放在變量c的個位和百位上。
例如,當a=45,b=12。調用該函數後,c=5241。
#include<stdio.h>
int change(int a, int b)
{
int a1,a10,b1,b10,c;
a10=a/10;
a1=a%10;
b10=b/10;
b1=b%10;
c=a1*1000+b1*100+a10*10+b10*1;
return c;
}
int main()
{
int m,n;
scanf("%d%d",&m,&n);
printf("%d",change(m,n));
return 0;
}
4. 編寫程序,定義函數fun,實現如下功能:找出一個大於給定整數m且緊隨m的素數,並作爲函數值返回。
#include<stdio.h>
#include<math.h>
int IsPrime(int a)
{
int i;
if(a==2)
return 1;
for(i=2;i<=sqrt(a);i++)
if(a%i==0) return 0;
return 1;
}
int main()
{
int m,i;
scanf("%d",&m);
for(i=2;i<=m;i++)
{
if(IsPrime(i)==1)
printf("%d\t",i);
}
return 0;
}
5. 編寫函數fun,實現它的功能:求小於形參n同時能被3和7整除的所有自然數之和的平方根,並作爲函數值返回。
#include<stdio.h>
#include<math.h>
float fun(int a)
{
int i,result=0;
float re;
for(i=0;i<=a;i++)
{
if(i%3==0&&i%7==0)
result+=i;
}
re=sqrt(result);
return re;
}
int main()
{
int m;
scanf("%d",&m);
printf("%f",fun(m));
return 0;
}
6. 編寫函數fun,實現功能如下:判斷一個整數是否爲素數,若是素數返回1,否則返回0。在main函數中,若fun返回1輸出YES,若fun返回0輸出NO!
#include<stdio.h>
#include<math.h>
int IsPrime(int a)
{
int i;
if(a==2)
return 1;
for(i=2;i<=sqrt(a);i++)
if(a%i==0) return 0;
return 1;
}
int main()
{
int m,i;
scanf("%d",&m);
if(IsPrime(m)==1)printf("YES");
else printf("NO");
return 0;
}
7. 定義函數fun實現功能:將形參n中,各位上爲偶數的數取出,並按原來從高位到低位的順序組成一個新數,作爲函數值返回。
例如,從主函數輸入一個整數27638496,則函數返回值爲26846。
#include <stdio.h>
int fun(int n)
{
int t,j,x;
for(j=1,x=0;n!=0;)
{
t=n%10;
n=n/10;
if(t%2==0)
{
x+=t*j;
j*=10;
}
}
return x;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",fun(n));
return 0;
}