当前位置: 首页 > news >正文

C语言简要(一)

总得让她开心吧

helloworld

#include <stdio.h>int main()
{printf("hello world!\n");return 0;
}

程序框架

#include <stdio.h>
int main
{return 0;
}

输出

printf("hello world!\n");

"'里面的内容叫做“字符串”,printf会把其中的内容元丰不动的输出

\n表示需要在输出的结果后面换一行

 做计算

printf("%d\n",23+43);

%d说明后面有一个整数要输出在这个位置上。

printf("23+43=%d\n",23+43);

%d是把后面的值填到这个地方去

输入

#include <stdio.h>int main()
{int price=0;printf("请输入金额(元)");scanf("%d",&price);int change = 100 - price;printf("找您%d元\n",change);return 0; 
}

int price=0;

这一行,定义了一个变量。变量的名字是price,类型是int,初始值是0;

变量是一个保存数据的地方,当我们需要在程序里保存数据时,比如上面的例子中要记录用户输入的价格,就需要一个变量来保存它。用一个变量保存了一个数据,它才能参加到后面的计算中,比如计算找零。

 变量定义

变量定义的一般形式就是:

<类型名称><变量名称>;

int price;

int amount;

int price,amount;

变量名

变量需要一个名字,变量的名字是一种“标识符“,意思是它是用来识别这个和那个的不同的名字。”

标识符有标识符的构造规则。基本的原则是:标识符只能由字母、数字和下划线组成,数字不能出现在第一个位置上,C语言的关键字(保留字)不可以用做标识符。

赋值

a=b表示要求计算机做一个动作:将b的值赋给a。

关系是静态的,而动作是动态的。所以a=b和b=a是完全相反的

初始化

所有变量在定义的地方可以不做初始化,但是所有的变量在第一次被使用之前应该赋值一次 

变量初始化

<类型名称><变量名称>=<初始值>;

int price=0;

int amount=100;

组合变量定义的时候,也可以在这个定义中单独给单个变量赋初值,如:

int price=0,amount=100;

 变量类型

C语言是一种有类型的语言,所有的变量在使用之前必须定义或声明,所有的变量必须具有确定的数据类型。数据类型表示在变量中可以存放什么样的数据,变量中只能存放指定类型的数据,程序运行过程中也不能改变变量的类型

 第二个变量

int chage=100-price;

定义了第二个变量change

并且做了计算

在C99中可以这样定义

 ANSI C

只能在代码开头的地方定义变量

 

读整数

scanf("%d",&price);

要求scanf这个函数读入下一个整数,读到的结果赋值给变量price

小心price前面的&

Scanf 

int main()
{
int a;
int b;
scanf("%d %d",&a,&b);
printf("%d %d\n",a,b);
return 0;
}

运行正常。

int main()
{
int a;
int b;
scanf("%d,%d",&a,&b);
printf("%d %d\n",a,b);
return 0;
}

也就是说scanf里的,你输入的时候也要输入

常量

int chage=100-price;

固定不变的数,是常数。直接写在程序里,我们称作直接量。

更好的方式,是定义一个常量:

const int AMOUNT = 100;(C99写法)

const

const是一个修饰符,加在int的前面,用来给这个变量加上一个const的属性。这const的属性表示这个变量的值一旦初始化,就不能再修改了。

int change =AMOUNT-price;

如果你试图对常量做修改,把它放在赋值运算符的坐标,就会背编译器发现,指出为一个错误。 

 try

让用户输入变量AMOUNT的值,而不是使用固定的初始值。

#include <stdio.h>int main()
{int price=0;int amount=0;printf("请输入金额(元)");scanf("%d",&price);printf("请输入原始(元)");scanf("%d",&amount);int change = amount - price;printf("找您%d元\n",change);return 0; 
}

浮点数

一个美国人告诉你他是5英尺7寸,他的身高应该是1米几?

(5+7/12)*0.3048=1.7018米

带小数点的数值。浮点这个词的本意就是指小数点是浮动的,是计算机内部表达非整数(包含分数和无理数)的一种方式。另一种方式叫做定点数,不过在C语言中你不会遇到定点数。人们借用浮点数这个词来表达所有带小数点的数。 

计算身高的程序 

#include <stdio.h>int main()
{
printf("请分别输入身高的英尺和英寸,"
"如输入\"5 7\"表示5英尺7英尺:");
int foot;
int inch;
scanf("%d %d",&foot,&inch);
printf("身高是%f。\n",((foot+inch/12)*0.3048)); 
return 0;
}

但是似乎不对

因为两个整数的运算的结果只能是整数

10/3*3=>?

10和10.0在C中是完全不同的数

10.0是浮点数

 

把前面的d改成f

改进

当浮点数和整数放到一起运算时,C会将整数转换成浮点数,然后进行浮点数的运算。

 double

inch是定义为int类型的变量,如果把int换成double,我们就把它改为double类型的浮点数据变量了。

double是双精度浮点数,float表示单精度浮点数

#include <stdio.h>int main()
{
printf("请分别输入身高的英尺和英寸,"
"如输入\"5 7\"表示5英尺7英尺:");
double foot;
double inch;
scanf("%lf %lf",&foot,&inch);
printf("身高是%f。\n",((foot+inch/12)*0.3048)); 
return 0;
}

整数

        int

        printf("%d",....)

        scanf("%d",.....)

带小数点的数

        double

        print("%f",......)

        print("%lf",......)

 表达式

一个表达式是一系列运算符和算子的组合,用来计算一个值

amount=x*(1+0.033)*(1+0.033)*(1+0.033);

total=57;

count=count+1;

value=(min/2)*lastValue;

 运算符

运算符是指运算的动作,比如加法运算符”+“,减法运算符”-“。

算子是指参与运算的值,这个值可能是常数,也可能是变量,还可能是一个方法的返回值。

 计算时间差

输入两个时间,每个时间分别输入小时和分钟的值,然后输出两个时间之间的差,也以几小时几分表示

#include <stdio.h>int main()
{
int hour1,minute1;
int hour2,minute2;
scanf("%d %d",&hour1,&minute1);
scanf("%d %d",&hour2,&minute2);
int t1=hour1*60+minute1;
int t2=hour2*60+minute2;
int t=t2-t1;
printf("差%d小时%d分",t/60,t%60);
return 0;
}

 

运算符优先级

写一个程序,输入两个整数,输出它们的平均值

int a,b;

scanf("%d %d",&a,&b);

double c=(a+b)/2.0;

print("%d和%d的平均值=%f\n",a,b,c);

 

赋值运算符

赋值也是运算,也有结果

a=6的结果是a被赋予的值,也就是6

a=b=6->a=(b=6)

  交换两个变量

int a=5;

int b=6;

 不能直接写

a=b;

b=a;

这样就会使最后的结果都变为b;

所以我们需要再引入一个变量t

int t;

t=a;

a=b;

b=t;

#include <stdio.h>int main()
{
int a=5;
int b=6;
int t;
t=a;
a=b;
b=t;
printf("a=%d,b=%d\n",a,b);
return 0;
}

 复合赋值

5个运算符形成符合运算

”+=“ “-=” “*=” “/=“ ”%=“

递增和递减

++ -- (+1 -1)

前面只能是变量

前缀后缀

++和--可以放前面

a++的值是a加1以前的值,而++a的值是加1以后的值,无论哪个,a自己的值都加了1.

下班下班

相关文章:

C语言简要(一)

总得让她开心吧 helloworld #include <stdio.h>int main() {printf("hello world!\n");return 0; } 程序框架 #include <stdio.h> int main {return 0; }输出 printf("hello world!\n"); "里面的内容叫做“字符串”&#xff0c;prin…...

那些年我与c++的叫板(一)--string类自实现

引子&#xff1a;我们学习了c中的string类&#xff0c;那我们能不能像以前数据结构一样自己实现string类呢&#xff1f;以下是cplusplus下的string类&#xff0c;我们参考参考&#xff01; 废话不多说&#xff0c;直接代码实现&#xff1a;&#xff08;注意函数之间的复用&…...

二刷算法训练营Day08 | 字符串(1/2)

今日任务&#xff1a; 344.反转字符串 541. 反转字符串II卡码网&#xff1a;54.替换数字 151.翻转字符串里的单词卡码网&#xff1a;55.右旋转字符串 详细布置&#xff1a; 1. 344. 反转字符串 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 …...

使用高防IP是应对网络安全的重要措施

使用高防IP&#xff08;High Defense IP&#xff09;在现代网络环境中显得尤为重要&#xff0c;这主要源于以下几个方面的原因&#xff1a; 一、网络安全形势严峻 随着互联网的快速发展&#xff0c;网络安全问题日益突出。各种网络攻击手段层出不穷&#xff0c;如分布式拒绝服…...

代码随想录-算法训练营day40【动态规划03:整数拆分、不同的二叉搜索树】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第九章 动态规划part03● 343.整数拆分 ● 096.不同的二叉搜索树 详细布置 今天两题都挺有难度&#xff0c;建议大家思考一下没思路&#xff0c;直接看题解&#xff0c;第一次做&#xff0c;硬想很难想出来。343. 整数…...

MySQL数据库中基本数据管理操作

使用SQL语句实现基本数据管理操作——即DML语句 1.添加数据 insert into 表名&#xff08;字段名称&#xff0c;字段名称&#xff0c;字段名称&#xff09;values&#xff08;数据&#xff0c;数据&#xff0c;数据&#xff09; 在MySQL数据库中&#xff0c;除了数字&#x…...

记录一下Hql遇到的零碎问题

建表相关 -- 地区维度表 drop table dim_province_full; create table dim_province_full( id string comment 编号, name string comment 省份名称, region_id string comment 大区id, area_code string comment 行政区位码, iso_code string comment 国际编码, iso_3166_2 s…...

Flutter 中的 TextField 小部件:全面指南

Flutter 中的 TextField 小部件&#xff1a;全面指南 在 Flutter 中&#xff0c;TextField 是一个允许用户输入文本的小部件。它非常灵活&#xff0c;支持多种文本输入场景&#xff0c;如单行文本、多行文本、密码输入、数值输入等。TextField 还提供了丰富的定制选项&#xf…...

GPT-4o:全面深入了解 OpenAI 的 GPT-4o

GPT-4o&#xff1a;全面深入了解 OpenAI 的 GPT-4o 关于 GPT-4o 的所有信息ChatGPT 增强的用户体验改进的多语言和音频功能GPT-4o 优于 Whisper-v3M3Exam 基准测试中的表现 GPT-4o 的起源追踪语言模型的演变GPT 谱系&#xff1a;人工智能语言的开拓者多模式飞跃&#xff1a;超越…...

2024中国应急(消防)品牌巡展西安站成功召开!惊喜不断

消防品牌巡展西安站 5月10日&#xff0c;由中国安全产业协会指导&#xff0c;中国安全产业协会应急创新分会、应急救援产业网联合主办&#xff0c;陕西消防协会协办的“一切为了安全”2024年中国应急(消防)品牌巡展-西安站成功举办。该巡展旨在展示中国应急&#xff08;消防&am…...

信创电脑|暴雨新增兆芯KX-7000处理器版本

IT世界 5 月 15 日消息&#xff0c;暴雨公司信创家族新上架了一款搭载兆芯KX-7000系列处理器、摩尔线程8GB 显卡、16G DDR5 内存以及 512G SSD 的新配置台式电脑主机。 兆芯 KX-7000 处理器采用开先的 8 核 Chiplet互联架构&#xff0c;最高频率3.7 GHz&#xff0c;拥有 32MB 的…...

面向对象 07:抽象类相关知识,抽象类的基本概念,使用方式,以及一些注意事项

一、前言 记录时间 [2024-05-15] 系列文章简摘&#xff1a; 面向对象 03&#xff1a;类与对象的创建、初始化和使用&#xff0c;通过 new 关键字调用构造方法&#xff0c;以及创建对象过程的内存分析 面向对象 04&#xff1a;三大特性之——封装&#xff0c;封装的含义和作用&a…...

Rust中的链式调用方法

在Rust编程语言中&#xff0c;链式调用是一种流行的编程模式&#xff0c;它允许开发者以流畅、连续的方式调用多个方法。这种风格不仅提高了代码的可读性&#xff0c;而且使得复杂的操作可以串联在一起&#xff0c;形成一个清晰、简洁的语句。在Rust中&#xff0c;链式调用主要…...

xCode升级后: Library ‘iconv2.4.0’ not found

报错信息&#xff1a; targets 选中 xxxNotification: Build Phases ——> Link Binary With Libraries 中&#xff0c;移除 libiconv.2.4.0.tbd libiconv.2.4.0.dylib 这两个库&#xff08;只有一个的移除一个就好&#xff09;。 然后重新添加 libiconv.tbd 修改完…...

SQL语言:完整性约束

完整性约束 数据完整性是指存储在数据库中的数据要能正确反映实际情况&#xff0c;规定输入的数据不能是无效值、错误值 或者乱码等。 一、非空约束&#xff1a; 非空约束关键字&#xff1a; not null 1、非空约束的创建 create table teacher( t_id int not null, -- 为教…...

UBUNTU下CMAKE指定执行文件运行时查找库的路径

在Ubuntu下&#xff0c;使用CMake时&#xff0c;如果需要指定执行文件运行时库的搜索路径&#xff0c;可以在CMakeLists.txt文件中通过set_target_properties命令来设置。 以下是一个示例&#xff0c;假设你的目标是一个名为my_application的可执行文件&#xff0c;你想要添加…...

WHAT - CSS Animationtion 动画系列(四)- 移动端全屏动画

目录 一、背景1.1 GIF & Video1.2 存在的问题 二、技术方案2.1 使用CSS动画和JavaScript2.2 使用JavaScript库2.3 使用序列帧1. css animation 帧动画2. JavaScript requestAnimationFrame 帧动画 2.4 使用Canvas1. html 和 canvas 中的 video2. 基于Canvas的动画库 今天我…...

springboot004网页时装购物系统

springboot004网页时装购物系统 亲测完美运行带论文&#xff1a;获取源码&#xff0c;私信评论或者v:niliuapp 运行视频 包含的文件列表&#xff08;含论文&#xff09; 数据库脚本&#xff1a;db.sql其他文件&#xff1a;ppt.pptx论文/文档&#xff1a;开题报告.docx论文&…...

海外住宅IP介绍

住宅IP&#xff0c;通俗的来讲就是分配给家庭的IP地址&#xff0c;ISP默认分配用户为家庭用户&#xff0c;其真实性与安全性都有一定保障。海外住宅IP是指由海外互联网服务提供商分配给家庭用户的IP地址&#xff0c;IP地址通常是静态的&#xff0c;稳定的&#xff0c;可以为用户…...

Qt | QTimer 类(计时器)

01、相关知识回顾 Qt C++ | QTimer经验总结Qt | QDateTimeEdit、QDateEdit类和QTimeEdit类02、QTimer 类 1、QTimer 类是 QObejct 的直接子类,该类用于实现计时器,QTimer 类未继承自 QW...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...