18.C语言函数相关练习题2

news2024/12/23 11:03:51

函数相关练习题2

  • 1.不同班级的平均分
  • 2.二维数组和函数的概念
  • 3.外部变量和全局变量
  • 4.全局变量的例子
  • 5.输入10个数,找出最大数及最大数的下标

1.不同班级的平均分

#include <stdio.h>

void inityarry(int arr[],int len){
	int i;
	for(i=0;i<len;i++){
		printf("请输入第%d个学生的成绩\n",i+1);
		scanf("%d",&arr[i]);
	}
	puts("done");
}

void printarry(int arr[],int len){
		int i;
		printf("总人数:%d个\n",len);
		for(i=0;i<len;i++){
			printf("%d ",arr[i]);
			
		}
		puts("\n done\n");
}

float getaverage(int arr[],int len){
	int i;
	float aver = 0.0;
	int sum = 0;
	for(i=0;i<len;i++){
		sum = sum + arr[i];
}
	aver = (float)sum/len;
	return aver;
}

int main(){
	int classOne[5];
	int classTwo[10];
	
	float averofClassone;
	float averofClassTwo;
	
	int lenclassone = sizeof(classOne)/sizeof(classOne[0]);
	int lenclassTwo = sizeof(classTwo)/sizeof(classTwo[0]);
	
	inityarry(classOne,lenclassone);
	inityarry(classTwo,lenclassTwo);
	
	printarry(classOne,lenclassone); 
	printarry(classTwo,lenclassTwo);
	
	averofClassone = getaverage(classOne,lenclassone);
	averofClassTwo = getaverage(classTwo,lenclassTwo);
	
	printf("一班平均分:%f\n",averofClassone);
	printf("二班平均分:%f\n",averofClassTwo);
	return 0;
	
	
	
	return 0;
}

2.二维数组和函数的概念

#include <stdio.h>

void TWO(int arr[][3]){
	int i;
	int j;
	for(i=0;i<2;i++){
		for(j=0;j<3;j++){
			printf("%d",arr[i][j]);
		}
		putchar("\n");
	}
}

int main(){
	int arr[2][3] = {{1,2,3},{11,22,33}};
	TWO(arr);
	return 0;
}

//二维数组是特殊的一维数组,每个元素又是一个数组
//大小要确定(列)

合法写法:

int arr[2][3]
int arr[][3]
//关心的点:数组数据类型
//数组的大小(数组的列)

不合法写法
在这里插入图片描述

int arr[][]
int arr[3][]
#include <stdio.h>  
  
void TWO(int arr[][4], int hang, int lie) {  
    int i;  
    int j;  
    for (i = 0; i < hang; i++) {  
        for (j = 0; j < lie; j++) {  
            printf("%d ", arr[i][j]); // 在元素之间添加一个空格以提高可读性  
        }  
        printf("\n"); //
    }  
}  
  
void init(int arr[][4], int hang, int lie) {  
    int i;  
    int j;  
    for (i = 0; i < hang; i++) {  
        for (j = 0; j < lie; j++) {  
            printf("请输入第%d行,第%d列的数据\n", i + 1, j + 1);  
            scanf("%d", &arr[i][j]);  
        }  
       
    }  
}  
  
int MX(int arr[][4], int hang, int lie) {  
    int i;  
    int j;  
    int max = arr[0][0]; // 初始化max为数组的第一个元素  
      
    for (i = 0; i < hang; i++) {  
        for (j = 0; j < lie; j++) {  
            if (max < arr[i][j]) {  
                max = arr[i][j];  
            }  
        }  
    }  
    return max;  
}  
  
int main() {  
    int max;  
    int arr[3][4];  
      
    init(arr, 3, 4);  
    TWO(arr, 3, 4);  
    max = MX(arr, 3, 4);  
    printf("max is %d\n", max);   
      
    return 0;  
}

3.外部变量和全局变量

#include  <stdio.h>
//全局变量:所有函数之前的外部变量
//优点:便捷
//缺点: 所有函数都可以操作这个变量
int a = 10;
int b = 20;

void fun1(){
	printf("fun1:%d\n",a);
	printf("fun1:%d\n",b);
}

//局部变量(外部变量)
int p = 100;
int q = 90;


void fun2(){
	printf("fun2:%d\n",p);
	printf("fun2:%d\n",q);
}

int main(){
	fun1();
	fun2();
	printf("main:%d\n",a);
	printf("main:%d\n",b);
	return 0;
}

4.全局变量的例子

#include <stdio.h>

int max;
int min;

float getresult(int arr[],int len){
	int i;
	int sum = 0;
	max = min = arr[0];
	for(i=0;i<len;i++){
		if(max<arr[i]){
			max = arr[i];
		}
		if(min>arr[i]){
			min = arr[i];
		}
		sum += arr[i];
	}
	return (float)sum/len;
}

int main(){
	int scores[] = {1,2,3,4,5,6,7,8,9,10};
	float aver;
	
	aver = getresult(scores,sizeof(scores)/sizeof(scores[0]));
	printf("班级的最高分:%d\n  最低分是%d\n  平均分是%f\n",max,min,aver);
	return 0;
}
//函数调用的目的:通过调用函数获得某些结果
//函数强调的是功能性的封装供调用者来改变当中的一些数据

5.输入10个数,找出最大数及最大数的下标

  • 封装冒泡排序的函数

  • 封装选择排序的函数

    #include <stdio.h>  
      
    void bubbleMax(int arr[], int size, int *maxIndex) {  
        int i, j, tempIndex = 0;  
        for (i = 0; i < size - 1; i++) {  
            for (j = 0; j < size - i - 1; j++) {  
                if (arr[j] < arr[j + 1]) {  
                    // 如果当前元素小于下一个元素,则交换它们  
                    tempIndex = j;  
                    j = size; // 强制退出内层循环  
                }  
            }  
            if (tempIndex != *maxIndex) {  
                // 更新最大值的下标  
                *maxIndex = tempIndex;  
            }  
        }  
    }  
      
    void selectionSort(int arr[], int size) {  
        int i, j, minIndex, temp;  
        for (i = 0; i < size - 1; i++) {  
            minIndex = i;  
            for (j = i + 1; j < size; j++) {  
                if (arr[j] < arr[minIndex]) {  
                    minIndex = j;  
                }  
            }  
            if (minIndex != i) {  
                // 交换找到的最小值和当前元素  
                temp = arr[minIndex];  
                arr[minIndex] = arr[i];  
                arr[i] = temp;  
            }  
        }  
    }  
      
    int main() {  
        int arr[10] = {3, 8, 2, 5, 1, 9, 6, 7, 4, 0};  
        int size = sizeof(arr) / sizeof(arr[0]);  
        int maxIndex = 0;  
        int maxVal;  
      
        // 使用冒泡排序找出最大数的下标  
        bubbleMax(arr, size, &maxIndex);  
        maxVal = arr[maxIndex];  
      
        printf("最大数是:%d,其下标是:%d\n", maxVal, maxIndex);  
      
        // 使用选择排序对数组进行排序  
        selectionSort(arr, size);  
      
        printf("排序后的数组:\n");  
        for (int i = 0; i < size; i++) {  
            printf("%d ", arr[i]);  
        }  
        printf("\n");  
      
        return 0;  
    }
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1970412.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【第八天】DNS及其查询过程

DNS及其查询过程 什么是DNS&#xff1f; 一般我们的主机&#xff0c;服务器都有一个ip地址&#xff0c;例如10.10.10.1。在计算机层面&#xff0c;如果我们要发送请求的话&#xff0c;首先就要知道我们的目标&#xff0c;也就是对方的ip地址。而IP地址很难记&#xff0c;比如…

初学者编程指南:方法与资源推荐

一、引言 编程已成为当代大学生的必备技能&#xff0c;但面对众多编程语言和学习资源&#xff0c;新生们常常感到迷茫。如何选择适合自己的编程语言&#xff1f;如何制定有效的学习计划&#xff1f;如何避免常见的学习陷阱&#xff1f;编程不仅是技术领域的一项基本技能&#…

H.264编码中的16x16宏块分析

&#x1f60e; 作者介绍&#xff1a;欢迎来到我的主页&#x1f448;&#xff0c;我是程序员行者孙&#xff0c;一个热爱分享技术的制能工人。计算机本硕&#xff0c;人工制能研究生。公众号&#xff1a;AI Sun&#xff08;领取大厂面经等资料&#xff09;&#xff0c;欢迎加我的…

快速索引alarm添加

快速索引alarm添加 添加预警alarm 文件夹和 temp_led.c , temp_led.h , humi_led.c, humi_led.h (1)点击品字, 添加alarm, 然后增加文件, 点进Source文件夹 (2)点击新建文件夹, 然后新建alarm文件夹 (3)把文件类型切换为all, 方便后续右键添加上述四个文件名字. (4)空白处, 右…

社区团购的全流程解析与开源AI智能名片S2B2C商城小程序的应用探索

摘要&#xff1a;随着互联网技术的飞速发展&#xff0c;社区团购作为一种新兴的电商模式&#xff0c;凭借其高效、便捷、低成本的优势迅速崛起。本文旨在深入探讨社区团购的交易全流程&#xff0c;并以开源AI智能名片S2B2C商城小程序为例&#xff0c;分析其在社区团购中的创新应…

Nginx进阶-常见配置

一、nginx Proxy 反向代理 1、代理原理 反向代理产生的背景&#xff1a; 在计算机世界里&#xff0c;由于单个服务器的处理客户端&#xff08;用户&#xff09;请求能力有一个极限&#xff0c;当用户的接入请求蜂拥而入时&#xff0c;会造成服务器忙不过来的局面&#xff0c…

计算机毕业设计选题推荐-预制菜平台-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

传输限速的方案那么多,却都没有这一个全面

在很多行业和领域&#xff0c;传输速度并不是无限制地越快越好&#xff0c;反而基于很多原因&#xff0c;在很多情况下&#xff0c;需要对传输的速度进行限制&#xff0c;原因如下&#xff1a; 带宽分配&#xff1a;在有限的网络资源下&#xff0c;对传输进行限速可以确保关键…

MIT-离散数学笔记

离散数学 PropositionEx 1:Ex 2:Ex 3:Ex 4:Ex 5:Ex 6:Ex 7:Ex 8: Proposition In mathematics, we have a mathematical proof is a verification of a proposition by a chain of logical deductions from a set of axioms. 在数学中&#xff0c;数学证明是通过一组公理的一系…

强化学习-alphazero 算法理论

一、算法简介 简单地说&#xff0c;AlphazeroMCTS SL(策略网络价值网络) Selfplay resnet。 其中MCTS指的是蒙特卡洛树搜索&#xff0c;主要用于记录所有访问过的棋盘状态的各种属性&#xff0c;包括该状态访问次数&#xff0c;对该状平均评价分数等。 SL指监督学习算法&…

PCDN技术如何提高数据传输的可靠性?

PCDN技术通过以下方式提高数据传输的可靠性: 1.负载均衡与故障转移: PCDN系统具备负载均衡的能力&#xff0c;可以根据节点的负载情况动态分配请求&#xff0c;避免单点故障和过载情况。此外&#xff0c;当某个节点发生故障时&#xff0c;PCDN可以迅速将流量转移到其他可用节…

OpenAI推出GPT-4o长输出版版本

&#x1f989; AI新闻 &#x1f680; OpenAI推出GPT-4o长输出版版本 摘要&#xff1a;OpenAI宣布正在测试每次请求可输出最多64K tokens的GPT-4o长输出版版本&#xff0c;目前仅Alpha测试参与者可使用。该版本推理成本较高&#xff0c;定价每百万tokens输入6美元&#xff0c;…

从微架构到向量化--CPU性能优化指北

引入 定位程序性能问题&#xff0c;相信大家都有很多很好的办法&#xff0c;比如用top/uptime观察负载和CPU使用率&#xff0c;用dstat/iostat观察io情况&#xff0c;ptrace/meminfo/vmstat观察内存、上下文切换和软硬中断等等&#xff0c;但是如果具体到CPU问题&#xff0c;我…

用于跟踪个人图书馆的BookLogr

什么是 BookLogr &#xff1f; BookLogr 是一款网络应用&#xff0c;旨在帮助您轻松管理个人图书馆。这项自托管服务可确保您完全控制数据&#xff0c;提供安全且私密的方式来跟踪您拥有、阅读或希望阅读的所有书籍。您也可以选择向公众自豪地展示您的图书馆&#xff0c;与您的…

申请流量卡不通过,这是什么原因呢,又该如何解决?

在申请流量卡时&#xff0c;有些人会出现被拒绝的情况&#xff0c;你知道这是怎么回事吗&#xff1f;申请流量卡被拒绝又该如何解决呢&#xff1f;下面这些问题都给你整理下了&#xff01; ​ 常见原因&#xff1a; 1.信息有误&#xff1a;收件人/办卡人&#xff1a;必须是同一…

How to specify the LangSmith project name for each Chain?

题意&#xff1a;如何为每个链指定LangSmith项目名称&#xff1f; 问题背景&#xff1a; According to the LangSmith documentation you need to set the LANGCHAIN_PROJECT environment variable to specify the project name in langsmith. 根据LangSmith的文档&#xff0…

Vmware ubuntu20.04 虚拟文件夹

目录 1.vmware 设置 2.ubuntu设置 1.vmware 设置 设置完成后我们开机 2.ubuntu设置 我们打开终端 输入命令 vmware-hgfsclient可以看到你当前的共享文件 然后我们输入以下命令&#xff0c;用于将共享文件夹挂载到虚拟机中 sudo vmhgfs-fuse .host:/ /mnt -o nonempty -o …

(24)(24.1) FPV和仿真的机载OSD(一)

文章目录 前言 1 参数 2 第二OSD 3 屏幕和屏幕切换 4 面板项目 5 呼号面板 6 用户可编程警告 7 使用SITL测试OSD 8 OSD面板列表 前言 使用 MAX7456 型芯片的板载操作系统和基于 MSP 的外部操作系统&#xff08;包括 DJI 护目镜和使用DisplayPort 的护目镜&#xff09…

【IEEE Fellow特邀报告,JPCS独立出版】第四届电子通信与计算机科学技术国际学术会议(ECCST 2024,9月20-22)

2024年第四届电子通信与计算机科学技术国际学术会议将于2024年9月20-22日在中国上海举行。 会议旨在为从电子与通信、网络、人工智能与计算机技术研究的专家学者、工程技术人员、技术研发人员提供一个共享科研成果和前沿技术&#xff0c;了解学术发展趋势&#xff0c;拓宽研究思…

delphi 11其中改变组件以及IDE的字体大小

1、先将form的font改好。 2、保证组件的parentfont为true即可。比如edit1.parentfont&#xff1a;true procedure TForm1.Button1Click(Sender: TObject); beginif self.FontDialog1.Execute() thenbeginform1.Font:self.FontDialog1.Font;self.Edit1.ParentFont:true;end; en…