实验十:优秀代码

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");
}

这道题的关键是先将最大值交换后再找最小值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 5,934评论 0 2
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 10,531评论 0 41
  • 题目类型 a.C++与C差异(1-18) 1.C和C++中struct有什么区别? C没有Protection行为...
    阿面a阅读 12,271评论 0 10
  • 记得刚刚上大学的时候那个激情澎湃,暗暗告诉自己,毕业一定要干一番事业,混出个人样儿来。最起码有有两个底线不能逾越,...
    基础绘画社阅读 2,087评论 3 1
  • 又是節假的日子,越來越頭疼過節,尤其是春節和清明節,還有民間的鬼節,都是個需要緬懷和憂傷的節日。 那麽多雞湯喊要遠...
    林素兮阅读 3,165评论 23 15