C : 递归求最大公约数
题目描述
写递归函数求两个数的最大公约数
优秀代码
#include <stdio.h>
int gcd (int m,int n);
int main ()
{
int m, n, t;
scanf ("%d",&t);
while (t--)
{
scanf ("%d%d", &m, &n);
printf("%d\n", gcd(m, n));
}
return 0;
}
int gcd (int m,int n)
{
if (m%n == 0)
return n;
else
return gcd(n, m%n);
}
D: 编写删除字符串中某个字符的函数----函数
题目描述
编制函数del_char
函数原型为 void del_char(char *,char),函数的功能是删除a指向的字符串中值为ch的字符,例如从字符串"AscADef"中删除'A'后,字符串为"scDef"。
优秀代码
E:将数列中最大数与最小数对换----函数
题目描述
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。
优秀代码
#include<stdio.h>
void input(int num1[10]);
void swap(int num2[10]);
void output(int num3[10]);
int main()
{
int s[10];
input(s);
swap(s);
output(s);
return 0;
}
void input(int num1[10])
{
int i;
for(i=0;i<10;i++)
scanf("%d",&num1[i]);
}
void swap(int num2[10])
{
int i,j,k1=0,k2=0,temp;
for(i=0;i<10;i++)
{
if(num2[i]<num2[k1])
k1=i;
}
temp=num2[0];
num2[0]=num2[k1];
num2[k1]=temp;
for(i=0;i<10;i++)
{
if(num2[i]>num2[k2])
k2=i;
}
temp=num2[9];
num2[9]=num2[k2];
num2[k2]=temp;
}
void output(int num3[10])
{
int i;
for(i=0;i<10;i++)
printf("%d ",num3[i]);
printf("\n");
}
这道题的关键是先将最大值交换后再找最小值。