C语言—函数

1.编写一个函数,通过输入一个数字字符,返回该数字29.

/*1.编写一个函数,通过输入一个数字字符,返回该数字 */#include <stdio.h>//函数定义,返回类型为int
int char_num(char c)
{if(c >= '0' && c <= '9')  //检查是否为数字{return c - '0';}return -1;  //返回错误标志,注意这里的错误标志不可以是1-9嗷
}int main(void)
{char c;printf("请输入一个数字字符:");scanf("%c",&c);int num = char_num(c);if(num != -1){printf("数字字符: %c 对应的数字是: %d\n",c,num);}else{printf("输入的不是数字字符!\n");}return 0;}


2.编写一个函数,输入四个数据分别表示2个点的x,y坐标,返回两点之间的距离

/*2.编写一个函数,输入四个数据分别表示2个点的x,y坐标,返回两点之间的距离*/#include <stdio.h>
#include <math.h>float two_distance(float x1,float x2,float y1,float y2)  //函数定义
{float dx = x2 - x1;float dy = y2 - y1;float distance = sqrt(dx * dx + dy * dy);return distance;
}int main(void)
{float x1,y1,x2,y2,distance;printf("请输入第一个点的坐标(a b):");scanf("%f%f",&x1,&x2);printf("请输入第二个点的坐标(a b):");scanf("%f%f",&y1,&y2);distance = two_distance(x1,x2,y1,y2);  //函数调用printf("两点之间的距离是: %.3f\n",distance);return 0;
}

在函数组这里,函数允许我们先使用在定义,但是我们要先声明,举个例子,下面的代码就是把函数放在后面,要先声明函数。

/*2.编写一个函数,输入四个数据分别表示2个点的x,y坐标,返回两点之间的距离*/#include <stdio.h>
#include <math.h>float two_distance(float x1,float x2,float y1,float y2);  //函数声明int main(void)
{float x1,y1,x2,y2,distance;printf("请输入第一个点的坐标(a b):");scanf("%f%f",&x1,&x2);printf("请输入第二个点的坐标(a b):");scanf("%f%f",&y1,&y2);distance = two_distance(x1,x2,y1,y2);  //函数调用并接收返回值printf("两点之间的距离是: %.3f\n",distance);return 0;
}
//函数定义
float two_distance(float x1,float x2,float y1,float y2)
{//计算两点之间的距离float dx = x2 - x1;float dy = y2 - y1;float distance = sqrt(dx * dx + dy * dy);return distance;
}


3.编写一个函数,通过参数输入x的值,计算如下的数学函数值,当 x>5时, f(x) = 4x+7;否则 f(x)= -2x+3,返回结果值。

/*3.编写一个函数,通过参数输入x的值,计算如下的数学函数值当 x>5时, f(x) = 4x+7;否则 f(x)= -2x+3,返回结果值。*/#include <stdio.h>int calculate_f(int x)  //函数定义
{if(x > 5){return 4 * x + 7;}else{	return -2 * x + 3;}
}int main(void)
{int x;printf("请输入x的值");scanf("%d",&x);int result = calculate_f(x);// 打印根据x值计算f(x)的过程if (x > 5) {printf("因为 x > 5,所以我们使用公式 f(x) = 4x + 7 来计算:\n");printf("f(x) = 4 * %d + 7 = %d + 7 = %d\n", x, 4 * x, 4 * x + 7);} else {printf("因为 x <= 5,所以我们使用公式 f(x) = -2x + 3 来计算:\n");printf("f(x) = -2 * %d + 3 = %d + 3 = %d\n", x, -2 * x, -2 * x + 3);}printf("f(x)的值为: %d\n",result);return 0;
}

当然我们也可以声明函数先使用放后面

/*3.编写一个函数,通过参数输入x的值,计算如下的数学函数值当 x>5时, f(x) = 4x+7;否则 f(x)= -2x+3,返回结果值。*/#include <stdio.h>int calculate_f(int x);  //函数声明int main()
{int x;printf("请输入x的值: ");scanf("%d", &x);int result = calculate_f(x);printf("根据您输入的x值,f(x)的计算过程如下:\n");if (x > 5){printf("因为 x > 5,所以我们使用公式 f(x) = 4x + 7 来计算:\n");printf("f(x) = 4 * %d + 7 = %d + 7 = %d\n", x, 4 * x, 4 * x + 7);}else{printf("因为 x <= 5,所以我们使用公式 f(x) = -2x + 3 来计算:\n");printf("f(x) = -2 * %d + 3 = %d + 3 = %d\n", x, -2 * x, -2 * x + 3);}printf("最终 f(x) 的值为: %d\n", result);return 0;
}int calculate_f(int x) //函数定义
{if (x > 5){return 4 * x + 7;}else{return -2 * x + 3;}
}


4.设计一个函数,统计字符串中大写字母的个数

/*4.设计一个函数,统计字符串中大写字母的个数*/#include <stdio.h>
#include <string.h>int countUpperCase(char string[]);  //函数声明int main(void)
{char str[] = "Hello World";int count = countUpperCase(str);printf("字符串为: %s\n",str);printf("大写字母的个数是: %d\n",count);return 0;}int countUpperCase(char str[])
{int count = 0;int len = strlen(str);for(int i = 0;i < len;i++){if(str[i] >= 'A' && str[i] <= 'Z'){count++;}}return count;}


5.编写一个函数,通过参数输入一个整型数,返回该数各位上数字的平方和;

int sofs(int a)
{if(a == 0)  //递归,结束条件必须在前面return 0;int sum = 0;int g   = a % 10;sum = g * g;sum += sofs( a / 10);  //计算个位数的平方和相加return sum;
}
我在这里举个例子
soft(123)
a不为0
g = 123 % 10 = 12...3     即g为3
sum = 3 * 3 计算出个位数的平方和
递归调用soft(12)
a不为0
g = 12 % 10 = 1...2       即g为2
sum = 2 * 2 计算出个位数的平方和
soft(1)
a为0将不会再进行下次调用
g = 1 % 10 = 0...1        即g为1
sum = 1 * 1
最后sum = 9 + 4 + 1 = 14
即返回sum值为14
/*5.编写一个函数,通过参数输入一个整型数,返回该数各位上数字的平方和;*/
#include <stdio.h>/*int sumofsquar(int a)
{int sum = 0;while(a)  //循环{int  g = a % 10;sum  += g * g;a /= 10;}return sum;
}*/int sofs(int a)
{if(a == 0)  //递归,结束条件必须在前面return 0;int sum = 0;int g   = a % 10;sum = g * g;sum += sofs( a / 10);  //计算个位数的平方和相加return sum;
}int main(void)
{int num = 0;printf("请输入一个整数:");scanf("%d",&num);//    int sum  = sumofsquar(num);
//    printf("%d 各个数位平方和为:%d\n",num,sum);int sum  = sofs(num);printf("%d 各个数位平方和为:%d\n",num,sum);return 0;
}


思考题:
6.编写一个函数,将数组中的数据首尾互换,要求分别用循环和用递归的方法实现

/*6.29思考题:1.编写一个函数,将数组中的数据首尾互换,要求分别用循环和用递归的方法实现*/
#include <stdio.h>/*void reverse(int a[],int n)  //循环实现数据首位互换
{int i = 0,j = n-1;for(; i < j; i++,j--){int t = a[i];a[i]  = a[j];a[j]  = t;}
}int main(void)
{int a[] = {1,3,5,7,9};int n = sizeof(a)/sizeof(a[0]);reverse(a,n);for(int i = 0;i < n;i++) //C99标准{printf("%5d",a[i]);}printf("\n");return 0;
} */
void reverse_v2(int a[],int n)  //递归实现数据互换
{if(n < 2)  //当小于2个数的时候就不该再递归自身了return ;int t  = a[0];a[0]   = a[n-1];a[n-1] = t;reverse_v2(&a[1],n-2);  //&a[1]传递下一个元素的地址 n-2每次少俩个
}int main(void)
{int a[] = {1,3,6,7,9};int n = sizeof(a)/sizeof(a[0]);//打印原始数组printf("原始数组为:");for(int i = 0;i < n;i++){printf("%5d",a[i]);}printf("\n");reverse_v2(a,n);printf("翻转数组为:");for(int i = 0; i < n; i++)  //C99标准{printf("%5d",a[i]);}printf("\n");return 0;
}

碎碎念可能有一些逻辑并不是很完整,我尽力了,若我懂了我会回来修改的

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

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

相关文章

SQL32 截取出年龄(substring_index函数的用法)

代码 select substring_index(substring_index(profile,,,3),,,-1) as age ,count(device_id) from user_submit group by age知识点 substring_index(FIELD, sep, n)可以将字段FIELD按照sep分隔&#xff1a; (1).当n大于0时取第n个分隔符(n从1开始)之前的全部内容&#xff1…

关于umi ui图标未显示问题

使用ant design pro 时&#xff0c;安装了umi ui &#xff0c;安装命令&#xff1a; yarn add umijs/preset-ui -D但是启动项目后&#xff0c;发现没有显示umi ui的图标 找了许多解决方案&#xff0c;发现 umi的版本问题&#xff0c;由于我使用的ant design pro官网最新版本&a…

沐编程APP免费下载|获取免费项目以及技术教程

软件介绍 沐编程专注于分享IT编程相关知识的网站&#xff0c;主要分享毕业设计案例代码&#xff0c;课程设计案例代码&#xff0c;实用功能代码&#xff0c;bug解决方案&#xff0c;编程工具推荐以及编程课程分享等 下载方式 蓝奏云下载&#xff1a;https://wfr.lanzout.com…

[ai笔记9] openAI Sora技术文档引用文献汇总

欢迎来到文思源想的ai空间&#xff0c;这是技术老兵重学ai以及成长思考的第9篇分享&#xff01; 这篇笔记承接上一篇技术文档的学习&#xff0c;主要是为了做一个记录&#xff0c;记录下openai sora技术介绍文档提到的一些论文&#xff0c;再此特地记录一下&#xff01; 1 原文…

Sora 文生视频提示词实例集 2

Prompt: Historical footage of California during the gold rush. 加利福尼亚淘金热期间的历史影像。 Prompt: A close up view of a glass sphere that has a zen garden within it. There is a small dwarf in the sphere who is raking the zen garden and creating patter…

MySQL篇之SQL优化

一、表的设计优化 表的设计优化&#xff08;参考阿里开发手册《嵩山版》&#xff09;&#xff1a; 1. 比如设置合适的数值&#xff08;tinyint int bigint&#xff09;&#xff0c;要根据实际情况选择。 2. 比如设置合适的字符串类型&#xff08;char和varchar&#xff09…

pytorch 实现线性回归(深度学习)

一 查看原始函数 初始化 %matplotlib inline import random import torch from d2l import torch as d2l 1.1 生成原始数据 def synthetic_data(w, b, num_examples):x torch.normal(0, 1, (num_examples, len(w)))y torch.matmul(x, w) bprint(x:, x)print(y:, y)y tor…

阿里云ECS香港服务器性能强大、cn2高速网络租用价格表

阿里云香港服务器中国香港数据中心网络线路类型BGP多线精品&#xff0c;中国电信CN2高速网络高质量、大规格BGP带宽&#xff0c;运营商精品公网直连中国内地&#xff0c;时延更低&#xff0c;优化海外回中国内地流量的公网线路&#xff0c;可以提高国际业务访问质量。阿里云服务…

免费chatgpt使用

基本功能如下&#xff1a; https://go.aigcplus.cc/auth/register?inviteCode3HCULH2UD

中科大计网学习记录笔记(十二):TCP 套接字编程

前前言&#xff1a;大家看到这一章节的时候一定不要跳过&#xff0c;虽然标题是编程&#xff0c;但实际上是对 socket 的运行机制做了详细的讨论&#xff0c;对理解 TCP 有很大的帮助&#xff1b;但是由于本节涉及到了大量的编程知识&#xff0c;对于一些朋友来说不是很好理解&…

Nginx (window)2024版 笔记 下载 安装 配置

前言 Nginx (engine x) 是一款轻量级的 Web 服务器 、反向代理&#xff08;Reverse Proxy&#xff09;服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器。 反向代理方式是指以代理服务器来接受 internet 上的连接请求&#xff0c;然后将请求转发给内部网络上的服…

[AIGC_coze] Kafka 的主题分区之间的关系

Kafka 的主题分区之间的关系 在 Kafka 中&#xff0c;主题&#xff08;Topics&#xff09;和分区&#xff08;Partitions&#xff09;是两个重要的概念&#xff0c;它们之间存在着密切的关系。 主题是 Kafka 中用于数据发布和订阅的逻辑单元。每个主题可以包含多个分区&#x…

BUGKU-WEB eval

题目描述 题目截图如下&#xff1a; 进入场景看看&#xff1a; <?phpinclude "flag.php";$a $_REQUEST[hello];eval( "var_dump($a);");show_source(__FILE__); ?>解题思路 PHP代码审计咯 相关工具 百度搜索PHP相关知识 解题步骤 分析脚…

OpenAI全新发布文生视频模型:Sora!

OpenAI官网原文链接&#xff1a;https://openai.com/research/video-generation-models-as-world-simulators#fn-20 我们探索视频数据生成模型的大规模训练。具体来说&#xff0c;我们在可变持续时间、分辨率和宽高比的视频和图像上联合训练文本条件扩散模型。我们利用对视频和…

【C++初阶】第三站:类和对象(中) -- 日期计算器

目录 前言 日期类的声明.h 日期类的实现.cpp 获取某年某月的天数 全缺省的构造函数 拷贝构造函数 打印函数 日期 天数 日期 天数 日期 - 天数 日期 - 天数 前置 后置 前置 -- 后置-- 日期类中比较运算符的重载 <运算符重载 运算符重载 ! 运算符重载 …

SG5032EAN规格书

SG5032EAN 晶体振荡器结合了相位锁定环&#xff08;PLL&#xff09;技术和AT切割晶体单元&#xff0c;提供了73.5 MHz至700 MHz的广泛频率范围&#xff0c;以满足高速数字应用的需求。高性能的LV-PECL输出&#xff0c;2.5V和3.3V电源电压&#xff0c;可灵活适配不同设计的电源需…

layui表格中使用cascader后导致表格滚动条消失

修改前&#xff0c;受影响页面 修改后最终想要的效果 修改方法

《Go 简易速速上手小册》第8章:网络编程(2024 最新版)

文章目录 8.1 HTTP 客户端与服务端编程 - Go 语言的网络灯塔与探航船8.1.1 基础知识讲解服务端编程客户端编程 8.1.2 重点案例&#xff1a;简易博客服务服务端实现客户端实现运行示例 8.1.3 拓展案例 1&#xff1a;增加文章评论功能功能描述服务端实现客户端实现 8.1.4 拓展案例…

Python爬虫之Splash详解

爬虫专栏&#xff1a;http://t.csdnimg.cn/WfCSx Splash 的使用 Splash 是一个 JavaScript 渲染服务&#xff0c;是一个带有 HTTP API 的轻量级浏览器&#xff0c;同时它对接了 Python 中的 Twisted 和 QT 库。利用它&#xff0c;我们同样可以实现动态渲染页面的抓取。 1. 功…

代码随想录|day 18

Day 18 哎&#xff0c;日子越来越近了&#xff0c;干什么都干不下去&#xff0c;但又必须要坚持。前途渺茫… 一、理论学习 1)自己误打误撞的时候&#xff0c;学习函数 int partitionmax_element(nums.begin(),nums.end())-nums.begin();也记录一下我的错误做法&#xff0c…