当前位置: 首页 > 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...

领域负载物技能制作器技能domain-payload-generator

Domain Payload Generator&#xff08;SkillHub&#xff09; Domain Payload Generator&#xff08;ClawHub&#xff09; name: domain-payload-generator author: 王教成 Wang Jiaocheng (波动几何) description: 领域负载物技能制作器&#xff08;Meta-Skill&#xff09;——…...

NotebookLM化学辅助实战手册(附ACS期刊PDF解析模板+分子式自动标注插件)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;NotebookLM化学研究辅助概述 NotebookLM 是 Google 推出的基于人工智能的文档理解与知识协作工具&#xff0c;专为研究者设计&#xff0c;支持对 PDF、TXT 等格式的科学文献进行语义索引、跨文档推理与可追溯问…...

QML数据驱动UI:从ListModel与ListElement入门到实战

1. 为什么需要数据驱动UI&#xff1f; 第一次接触QML开发时&#xff0c;我习惯直接在UI组件里写死数据。比如要显示一个水果列表&#xff0c;可能会这样写&#xff1a; Column {Text { text: "Apple - $2.45" }Text { text: "Orange - $3.25" }Text { text…...

C51可重入函数原理与实践指南

1. 理解C51中的可重入函数概念 在8051单片机开发中&#xff0c;可重入函数(Reentrant Function)是一个关键但常被误解的概念。与通用计算机上的C语言开发不同&#xff0c;由于8051架构的特殊限制&#xff0c;标准C51函数默认都是不可重入的。这源于8051硬件设计的几个固有特点&…...

用ArcGIS做快餐店选址分析:手把手教你用OD方法分析KFC和麦当劳的聚集关系

用ArcGIS解码快餐店选址密码&#xff1a;OD方法揭示KFC与麦当劳的区位博弈 当你在商业区看到KFC和麦当劳总是比邻而居&#xff0c;是否好奇这背后隐藏着怎样的商业逻辑&#xff1f;本文将以空间分析的视角&#xff0c;带你用ArcGIS工具揭示两大快餐巨头的选址策略。不同于传统的…...

NotebookLM摘要质量断崖式下滑?揭秘92%用户忽略的3个语义锚点校准技巧

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM摘要质量断崖式下滑的真相溯源 近期大量用户反馈 NotebookLM 生成的摘要出现关键信息遗漏、逻辑断裂与事实扭曲等现象&#xff0c;部分案例中摘要准确率较 2023 年底下降超 40%。这一退化并非…...

智能体进化蓝图:构建具备持续学习能力的AI系统架构设计

1. 项目概述&#xff1a;一个开源智能体进化蓝图最近在开源社区里&#xff0c;一个名为planck-lab/hermes-evolving-agents-public-blueprint的项目引起了我的注意。乍一看这个标题&#xff0c;包含了几个关键信息&#xff1a;planck-lab&#xff08;普朗克实验室&#xff0c;一…...

个人收款新选择:主流免签支付平台深度评测与避坑指南

1. 个人收款困境与免签支付崛起 做个人站长最头疼的问题是什么&#xff1f;十有八九会提到收款难。我做了5年独立博客&#xff0c;早期靠爱发电&#xff0c;后来想接点广告、卖点电子书&#xff0c;结果发现微信支付和支付宝压根不向个人开放支付接口。去年我的Python教程被疯传…...

【NotebookLM食品科研提效指南】:3天内将文献综述效率提升300%的5个隐藏技巧

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;NotebookLM食品科学研究的范式变革 传统食品科学研究长期依赖人工文献综述、实验数据孤立归档与跨模态信息割裂分析&#xff0c;导致知识发现周期长、可复现性弱、跨学科协同成本高。NotebookLM 的引入正从根…...

3分钟掌握ppInk:Windows屏幕标注工具的终极使用指南

3分钟掌握ppInk&#xff1a;Windows屏幕标注工具的终极使用指南 【免费下载链接】ppInk Fork from Gink 项目地址: https://gitcode.com/gh_mirrors/pp/ppInk 你是否在演示时需要用鼠标或触摸屏快速标注屏幕内容&#xff1f;是否希望有一款简单易用但功能强大的标注工具…...