首页 > 编程语言 >程序设计基础I-实验8 指针(函数题)

程序设计基础I-实验8 指针(函数题)

时间:2024-10-11 09:19:12浏览次数:8  
标签:10 函数 int void 30 样例 程序设计 输入 指针

6-1 sdut-C语言实验- n个数的排序

Qiao当上了体育委员,现在老师让他去给班级里的人排队,Qiao刚学了排序,所以他想以这种方式给班级里的人排队(从矮到高),他想知道排序完成后的结果。

函数接口定义:

void sort(int *p,int n);

其中 pn 都是用户传入的参数。 p 的值为传递过来的地址; n 的为正整数(1<=n<=100)。函数不需要返回数据。

裁判测试程序样例:


#include <stdio.h>

void sort(int *p,int n);

int main()
{
    int a[100];
    int n,i;
    int *p1;
    while(scanf("%d",&n)!=EOF)
    {
        for(p1=a; p1<a+n; p1++)
            scanf("%d",p1);
        sort(a,n);
        for(i=0; i<n-1; i++)
            printf("%d ",a[i]);
        printf("%d\n",a[n-1]);
    }
    return 0;
}

/* 请在这里填写答案 */

输入样例:

多组输入,每组的第一行是一个正数n(1<=n<=100),第二行是n个数,表示每一个人的高度。比如:

3
176 175 174

输出样例:

174 175 176
void sort(int *p,int n)//*p相当于一维数组
{
 	int i,j,k; 
	for(i=0;i<n-1;i++)
    {
		for(j=0;j<n-1-i;j++)
        {
			if (p[j]>p[j+1])
            {
				k=p[j];
				p[j]=p[j+1];
				p[j+1]=k;
			}
		}
	}
}
//运用冒泡排序法

6-2 sdut- C语言实验——矩阵下三角元素之和

输入一个正整数n(1<=n<=10),再输入n*n的矩阵,要求求该矩阵的下三角元素之和。

函数接口定义:

int f(int (*p)[10],int n);

其中 pn 都是用户传入的参数。 p 的值为地址; n 是[1, 10]区间内的个位数。函数不需要返回数据。

裁判测试程序样例:


#include<stdio.h>
int  f(int (*p)[10],int n);

int main()
{
    int n,i,j,sum;
    int a[10][10];
    scanf("%d",&n);
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    sum=f(a,n);
    printf("%d",sum);
    return 0;
}


/* 请在这里填写答案 */

输入样例:

5
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9

输出样例:

75
int f(int (*p)[10],int n)//(*p)[10]相当于二维数组
{
    int i,j,m;
    m=0;
    for(i=0;i<=n-1;i++)
    {
        for(j=0;j<=i;j++)
        {
            m=m+p[i][j];
        }
    }
    return m;
}

6-3 在数组中查找指定元素

本题要求实现一个在数组中查找指定元素的简单函数。

函数接口定义:

int search( int list[], int n, int x );

其中list[]是用户传入的数组;n(≥0)是list[]中元素的个数;x是待查找的元素。如果找到

则函数search返回相应元素的最小下标(下标从0开始),否则返回−1。

裁判测试程序样例:

#include <stdio.h>
#define MAXN 10

int search( int list[], int n, int x );
    
int main()
{
    int i, index, n, x;
    int a[MAXN];

    scanf("%d", &n);
    for( i = 0; i < n; i++ )
        scanf("%d", &a[i]);
    scanf("%d", &x);
    index = search( a, n, x );
    if( index != -1 )
        printf("index = %d\n", index);
    else
        printf("Not found\n");
            
    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例1:

5
1 2 2 5 4
2

输出样例1:

index = 1

输入样例2:

5
1 2 2 5 4
0

输出样例2:

Not found
int search(int list[],int n,int x)
{
    int i;
    for(i=0;i<n;i++)
    {
        if(list[i]==x)
            return i;
    }
            return -1;
}

6-4 sdut-C语言实验 - 杨辉三角

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

上面的图形熟悉吗?它就是我们中学时候学过的杨辉三角。
输入数据包含多组测试数据。每组测试数据的输入只有一个正整数n(1≤n≤30),表示将要输出的杨辉三角的层数。输入以0结束。
对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。

函数接口定义:

void yh_tri(int (*a)[30],int n); void yh_output(int (*a)[30],int n);

例如:其中 an 都是用户传入的参数。 a 的值为二维数组的首地址; n 是[1, 30]区间内的个位数。函数无返回。

裁判测试程序样例:


#include <stdio.h>

void yh_tri(int (*a)[30],int n);
void yh_output(int (*a)[30],int n);

int main()
{
    int a[30][30],n;
    while(~scanf("%d",&n)&&n)
    {
        yh_tri(a,n);
        yh_output(a,n);

    }

    return 0;
}

/* 请在这里填写答案 */

输入样例:

在这里给出一组输入。例如:

2
3
0

输出样例:

在这里给出相应的输出。例如:

1
1 1
1
1 1
1 2 1
void yh_tri(int (*a)[30],int n)
{
    int i,j;
    a[0][0]=1;
    a[1][0]=1;
    a[1][1]=1;//前两行的全部赋为1;
    for(i=2;i<n;i++)
    {
        a[i][0]=1;
        a[i][i]=1;//从第二行开始,每行的第一个和最后一个都赋为1;
        for(j=1;j<=i;j++)
        {
            a[i][j]=a[i-1][j-1]+a[i-1][j];//从第三行第二列开始,每个数字都等于上方两数字之和
        }
    }
}
void yh_output(int (*a)[30],int n)
{
    int i,j;
    for(i=0;i<n;i++)
    {
        for(j=0;j<=i;j++)
        {
            if(j==i)
                printf("%d\n",a[i][j]);
            else
                printf("%d ",a[i][j]);
        }
    }
}

标签:10,函数,int,void,30,样例,程序设计,输入,指针
From: https://blog.csdn.net/r2931887650/article/details/142844861

相关文章

  • Linux !ko/5.17-BBRplus AMD64(X86_64)内核致命的 futex_wait 函数死锁问题。
    !ko表示系统内核(system-kernel)致命:在CentOS(RedHat)、Ubuntu、Debian等多个发行版本Linux操作系统上,若人们升级 5.17-BBRplus版本内核,那么在应用程式频繁的futex_wait(syscall)等待唤醒时,或会存在futex_wait函数发生死锁的疑难问题。LMP:futex(2)-Linuxmanualpa......
  • 【玩转 JS 函数式编程_011】3.2 JS 函数式编程筑基之:以函数式编程的方式活用函数(下)+ 3
    文章目录3.2.4.填充脚本Polyfills1.检测Ajax(DetectingAjax)2.替代函数Addingmissingfunctions3.2.5.插入处理Stubbing3.2.6.即时调用Immediateinvocation3.3.本章小结Summary写在前面不知道看到这里的朋友有没有真正消化上篇中介绍的知识,这些内......
  • Java的基本程序设计结构
    以上整理来自《Java核心技术卷I》注释数据类型变量与常量运算符字符串输入输出控制流大数数组**一个简单的Java应用程序**访问修饰符:用于控制程序的其他部分对这段代码的访问级别。类名:以大写字母开头源代码的文件名必须与公共类的名字相同,并用.java作为扩展名......
  • Vavr - java函数式编程,分离业务代码与非业务代码神器
    微信公众号:阿俊的学习记录空间小红书:ArnoZhangwordpress:arnozhang1994博客园:arnozhangCSDN:ArnoZhang19941.入门指南使用Vavr的项目至少需要支持Java1.8。该.jar文件可以在MavenCentral获取。1.1.Gradledependencies{compile"io.vavr:vavr:0.10.4"}G......
  • Java如何写一个构造函数
     构造函数是类的一个特殊成员函数,它在创建对象时被调用,用于初始化新创建的对象。在Java中,构造函数的名称必须与类名完全相同,没有返回类型(包括void)。构造函数可以有参数,也可以没有。Java中的构造函数示例假设我们想要创建一个Person类,包含name和age两个属性。我们可以这样定......
  • Java如何调用构造函数和方法以及使用
    调用构造函数的格式构造函数在创建新对象时被调用。调用格式如下:ClassNameobjectName=newClassName(parameters);ClassName:你需要创建其实例的类的名称。objectName:你将创建的对象的名称。parameters:如果你使用的是带有参数的构造函数,这里需要传递相应的参数。示例:......
  • Boost C++ 库 | 智能指针(共享指针、共享数组、弱指针、介入式指针、指针容器)入门
    点击上方"蓝字"关注我们01、共享指针>>>这是使用率最高的智能指针,但是C++标准的第一版中缺少这种指针。它已经作为技术报告1(TR1)的一部分被添加到标准里了。如果开发环境支持的话,可以使用 memory 中定义的 std::shared_ptr。在BoostC++库里,这个智能指针命名为......
  • 42 C 语言 typedef:为基本数据类型、数组、指针、结构体、共用体起别名
    目录1 typedef介绍2 为某个基本类型起别名2.1为int类型起别名Integer2.2为unsignedchar类型起别名Byte2.3为基本类型一次起多个别名3 为结构体、共用体起别名3.1为结构体起别名3.1.1分开定义结构体和别名3.1.2与结构体定义一起使用typedef3.1.3为......
  • 指针 + 数组 较为复杂凌乱的 【笔试题】
    2024-10-10-笔记-25作者(Author):郑龙浩/仟濹(CSDN账号名)【指针+数组】的各种题型(笔试题)来自于鹏哥的网课,我做一下笔记119.【C语言进阶】笔试题详解(4)_哔哩哔哩_bilibili①题#include<stdio.h>intmain(){inta[5]={1,2,3,4,5};......
  • 友元函数friend
    在C++中,友元函数(FriendFunction)是一种特殊类型的函数,它不属于类的成员函数,但可以访问类的私有成员和保护成员。友元函数可以是普通函数、其他类的成员函数或类的成员函数模板。下面是关于C++友元函数的一些关键知识点:定义友元函数友元函数的声明需要在类的内部进行,使用关......