2021/12/5 day1

今天复习的知识如下(比较的简单):

1.复习基本的调用函数

#include<stdio.h>
/*int main()      //把主函数写在前面
{
    int add(int a,int b);     //在主函数中一定要声明被调函数
    int a,b;                  //定义变量a,b
    scanf("%d%d",&a,&b);      //输入变量a,b
    printf("%d",add(a,b));    //输出被调函数要执行的操作
    return 0;
}
int add(int a,int b)           //定义被调函数
{
    int c;
    c=a+b;                     //被调函数中要执行的操作
}*/
int add(int a,int b)          //把被调函数写在前面
{
    int c;
    c=a+b;                     //被调函数中要执行的操作
}
int main()                     //主函数写在最后不必声明被调函数
{
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d",add(a,b));
    return 0;
}
2.复习冒泡排序法

#include<stdio.h>
int main()
{
    int i,j,n;
    int a[100];
    scanf("%d",&n);          //输入数组的元素个数
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);   //输入数组元素
    for(i=0;i<n-1;i++)
        for(j=0;j<n-1-i;j++)
    {
        if(a[j]>a[j+1])     //相邻的两个逐个比较,先找最小的、在是第二小的...最后一个就无需比较
        {
            int t=a[j];
            a[j]=a[j+1];
            a[j+1]=t;
        }
    }
    for(i=0;i<n;i++)
        printf("%d ",a[i]);
    return 0;
}

3.选择排序法

这个方法是在哔哩哔哩看视频学到的,应该不是选择排序的方法

#include<stdio.h>
int main()
{
    int i,j,n;
    int a[100];
    scanf("%d",&n);    //输入数组元素个数
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);    //输入数组元素
    for(i=0;i<n-1;i++)
        for(j=i+1;j<n;j++)
    {
        if(a[i]>a[j])    //从第一个元素开始,依次与其他元素进行比较
        {
            int t=a[i];
            a[i]=a[j];
            a[j]=t;
        }
    }
    for(i=0;i<n;i++)
        printf("%d ",a[i]);
    return 0;
}

4.找一个矩阵中的最大元素下标

#include<stdio.h>
int main()
{
    int i,j,m,n,a1,a2;
    int a[100][100];
    scanf("%d%d",&m,&n);
    for(i=0;i<m;i++)
        for(j=0;j<n;j++)
    scanf("%d",&a[i][j]);
    int max=a[0][0];
    for(i=0;i<m;i++)
        for(j=0;j<n;j++)
    {
        if(max<a[i][j])
       {
         max=a[i][j];
         a1=i;
         a2=j;
       }
    }
    printf("这个最大数是:%d\n",max);
    printf("在矩阵中的行数是:%d\n",a1);
    printf("在矩阵中的列数是:%d\n",a2);
    return 0;
}

5.将两个有序数组合并为一个有序数组

#include<stdio.h>
int main()
{
    int i,j,num1,num2,k=0;
    int a[100],b[100],c[200];
    scanf("%d%d",&num1,&num2);    //输入数组a,b的元素个数
    for(i=0;i<num1;i++)
        scanf("%d",&a[i]);        //输入数组a的元素
    for(i=0;i<num2;i++)
        scanf("%d",&b[i]);        //输入数组b的元素
        i=0,j=0;
        while(i<num1||j<num2)    //当a,b数组元素个数都不符要求是结束
        {
            if(i<num1&&a[i]<b[j])  //当a数组元素个数符合且大小比b小
            {c[k++]=a[i];
            i++;}
            else
                {c[k++]=b[j];      //其余情况从数组b中给c数组
                j++;}
        }

    for(i=0;i<k;i++)
        printf("%d ",c[i]);       //c数组输出存储的数组a,b
    return 0;
}
 

总结:今天的的复习就先到这了,今天周末出去团建,没有什么时间去学习,希望明天能多刷题、多学新东西。

上一篇:D - 区间之和


下一篇:Linux中scanf类型匹配错误,特指scanf("%d", &c ) ,导致死循环的解决方法 —— fflush(stdin)和getchar()的使用