题目1:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
个人总结:设i,j,k分别是a,b,c比赛的对手,在x-y间循环3次并要求i,j,k不相等
#include"stdio.h"
void main()
{
char i,j,k;
for(i='x';i<='z';i++)
for(j='x';j<='z';j++){
if(i != j)
for(k='x';k<='z';k++){
if(i != k && j != k){
if(i != 'x' && k != 'x' && k != 'z')
printf("order is a--%c b--%c c--%c\n", i, j, k);
}
}
}
}
题目2:打印出如下图案(菱形)
*
***
*****
*******
*****
***
*
个人总结:寻找行列的规律,循环。
#include"stdio.h"
#define N 4
void main()
{
int i, j, k;
for(i = 1; i <= N; i++){
for(j = 1; j <= N -i; j++)
printf(" ");
for(k = 1; k < 2*i; k++)
printf("*");
printf("\n");
}
for(i = 1; i < N; i++){
for(j = 1; j <= i; j++)
printf(" ");
for(k = 1; k <= 2*(N-i)-1; k++)
printf("*");
printf("\n");
}
}
题目3:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
个人总结:找出规律循环
#include"stdio.h"
#define N 3
void main()
{
float i, a, b, s, t, temp;
s = 0;
a = 2.;
b = 1.;
for(i = 1; i <= N; i++){
t = a/b;
s = s+t;
temp = a;
a = a+b;
b = temp;
}
printf("%f\n", s);
}
题目4:求1+2!+3!+...+20!的和
个人总结:用递归
#include"stdio.h"
#define N 20
int fun(int n);
void main()
{
int i, t, s=0;
for(i = 1; i <=N; i++){
t = fun(i);
s = s +t;
}
printf("%d\n",s);
}
int fun(int n)
{
if(n == 1)
return 1;
else
return n*fun(n-1);
}
题目5:利用递归方法求5!
个人总结:用递归
#include"stdio.h"
#define N 5
int fun(int n);
void main()
{
int a;
a = fun(N);
printf("%d\n", a);
}
int fun(int n)
{
if(n == 1)
return 1;
else
return n*fun(n-1);
}
题目6:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
#include"stdio.h"
#define N 50
void fun(char *p);
void main()
{
char a[N];
printf("please input a string:");
scanf("%s",a);
fun(a);
}
void fun(char *p)
{
if(*p!='\0'){
fun(p+1);
printf("%c",*p);
}
else
return;
}