目录
1.编写判断素数的函数,主函数输入10个整数,素数输出,要求每行最多出5个。
4.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。
7. 编写递归函数reverse(int n)实现将整数n逆序输出。
8.编写递归函数calc_pow ( double x, int n )实现一个计算x n(n≥1)的函数
9. 编写递归函数int fib(int n)求Fabonacci数列.
1.编写判断素数的函数,主函数输入10个整数,素数输出,要求每行最多出5个。
#include<stdio.h>
int ss(int j)
{
int flag=1;
int i;
for(i=2;i<j;i++)
if(j%2==0)
{flag=0;break;}
if(flag==0)
return 0;
else return 1;}
int main()
{
int a,n=0,i;
for(i=1;i<=10;i++)
{
scanf("%d",&a);
if(ss(a))
{printf("%d ",a);
n++;}
if(n==5)
printf("\n");}
return 0;}
2.比较三个数大小。
#include<stdio.h>
int max(int x,int y)
{
if(x>y)
return x;
else
return y;
}
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%d",max(a,max(b,c)));
return 0;
}
3.使用函数统计指定数字的个数,读入一个整数,统计并输出该数中“2”的个数,要求定义并调用函数countdigit(number,digit),它的功能是统计整数number。例如:countdigit(12922,2),返回值是3。
#include<stdio.h>
int countdigit(int number,int digit)
{
int n=0;
int a;
while(number!=0){
a=number%10;
number = number/10;
if(a==digit)
n++;}
return n;
}
int main()
{
int number,digit;
scanf("%d%d",&number,&digit);
printf("%d",countdigit(number,digit));
return 0;
}
4.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。
#include<stdio.h>
int max(int x,int y)
{
int z;
while(y!=0){
z=x%y;
x=y;
y=z;
}
return x;
}
int min(int x,int y)
{
int n;
n=(x*y)/max(x,y);
return n;
}
int main()
{
int x,y;
int t;
scanf("%d%d",&x,&y);
if(x<y){
t=x;
x=y;
y=t;
}
printf("最大公约数%d,最小公倍数%d",max(x,y),min(x,y));
}
5.写一个函数,输入一个十六进制数,输出相应的十进制数。
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
char a[1000];
int f1(char a[]);
gets(a);
printf("%d\n",f1(a));
return 0;}
int f1(char a[])
{
int n,i,num=0;
n=strlen(a);
for(i=n-1;i>=0;i--)
{
if(a[i]>='0'&&a[i]<='9')
num+=(a[i]-'0')*pow(16,n-1-i);
else if(a[i]>='A'&&a[i]<='F')
num+=(10+(a[i]-'A'))*pow(16,n-1-i);
else if(a[i]>='a'&&a[i]<='f')
num+=(10+(a[i]-'a'))*pow(16,n-1-i);
return num;}
}
6. 汉诺塔问题
#include<stdio.h>
void hanio(int n,char a,char b,char c);
int main()
{ int n;
char a,b,c;
scanf("%d",&n);
hanio(n,'a','b','c');
return 0;
}
void hanio(int n,char a,char b,char c)
{if (n==1)
printf("%c->%c\n",a,b);
else
{hanio(n-1,a,c,b);
printf("%c->%c\n",a,b);
hanio(n-1,c,b,a); }
}
7. 编写递归函数reverse(int n)实现将整数n逆序输出。
#include<stdio.h>
int reverse(int n)
{
int m=0;
while(n!=0)
{
m=m*10+n%10;
n=n/10;
}
return m;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",reverse(n));
return 0;
}
8.编写递归函数calc_pow ( double x, int n )实现一个计算x n(n≥1)的函数
#include<stdio.h>
double calc_pow(double x,int n)
{
if(n>=1)
return (x*calc_pow(x,n-1));
else return 1;
}
int main()
{
double x;
int n;
scanf("%lf%d",&x,&n);
printf("%.0f\n",calc_pow(x,n));
return 0;}
9. 编写递归函数int fib(int n)求Fabonacci数列.
Fabonacci数列的定义为:
f(n)=f(n-2)+f(n-1) (n>=2) 其中 f(1)=1,f(2)=1。
如输入3 (n=3)
则输出
fit(1)=1
fit(2)=1
fit(3)=2
#include<stdio.h>
int f(int n)
{
int t;
if(n==1||n==2)
t=1;
else
t=f(n-1)+f(n-2);
return t;
}
int main()
{
int i,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
printf("f(%d)=%d\n",i,f(i));
return 0;}
10.有一个3*4的矩阵,求所有元素中的最大值
#include<stdio.h>
int main()
{
float a[3][4];
int i,j,max;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);}
printf("%d\n",max);
return 0;}
int max(float b[][4]);
{ int i,j,max;
max=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
if(max<a[i][j])
max=a[i][j];
}
return max;}