首页>> 程序设计基础

绪论 - Hello World!

2025-08-03 22:39:54 26

此内容是输出一个特定的语句Hello World!没有涉及计算等逻辑方面的内容。

我们首先要知道,C语言的代码框架是什么。

首先是引入库,C语言的工具和语法都是通过引入相应库来实现。比如输入输出功能需要引入stdio.h库,比如数学的高级计算需要引入math.h库,比如字符串操作需要引入string.h库,比如空间的动态调动用stdlib.h库等等。引入库的语法为:

#include <库名>

或者

#include "库名"

其中库名就是上述例子中的名称了。

接下来是定义区,此区域可以有,也可以没有。此区域主要是定义define、定义结构体内容、定义数据类型typedef、定义非main函数等等。

首先是定义define,它的作用是可以将一个常量用一个变量代替。假如说Pi为3.14,我就可以直接定义Pi了,而不是每次用到都要写3.14了,语法如下:

#define 变量名 常量

有人可能会问,如果我写 #define Pi 3.14,那么跟double Pi = 3.14有区别吗?实现的功能不是一样的吗?虽然是一样的,但是define还有一个特殊的用法。举个例子,假如说你刷题刷多了,经常用int定义整型,而如果题目范围过大,超出了int范围,如果你不想每次写long long,则可以用int代替long long,即 #define int long long。但是main函数要用signed数据类型,不然会报CE。

第二个就是定义结构体内容,这部分内容先不讲,以后会在结构体章节中提到。

第三个就是定义数据类型typedef,这部分内容也先不讲,结构体和数据结构会非常常见。

最后就是定义函数了,这部分会在以后的函数章节提到。

然后是全局变量定义,在函数之外定义的变量为全局变量,此变量可以用于此程序中的所有函数中,且可随函数中值的变化而变化。如果定义变量并赋值常量且保持此变量的值始终为定值,语法为:

const int 变量名 = 常量;

若想跟着改变而改变,定义时去掉前面的const即可。

最后是main函数,数据类型一般为int类型,最后要有返回值0。语法一般为:

int main(){
    语法一;
    语法二;
    ...
    return 0;
}

接下来我们讲一下数据类型。

常见的数据类型有:

int                    整型

long                长整型

long long        超长整型

double            双浮点型

float                单浮点型

char                字符型

struct               结构体型

bool                布尔型


接下来我们说一下C语言的标准输入和输出格式。

输入格式:

scanf("传入的数据格式",&传入变量);

例如:scanf("%d",&a);代表输入a。

输出格式:

printf("输出格式",输出变量);

当然,如果输出内容跟变量无关,则printf("输出格式");即可。


常见的输入输出数据样式:

%d                代表变量为整型

%ld                代表变量为长整型

%lld                代表变量为超长整型

%f                    代表变量为单浮点型

%lf                    代表变量为双浮点型

%s                    代表变量为字符串

%c                    代表变量为字符型

\n                        代表换行符

\t                        代表制表符

常用的就这么多。


所以,输出Hello World的代码相信大家都会写了,直接展示:

#include "stdio.h"

int main(){
    printf("Hello World!\n");
    return 0;
}

为了让大家养成良好的代码书写习惯,小编建议你们这么做:

1.代码之间严格缩进,不要随意Tab,否则会降低代码的可读性。不信?展示:

//以下是没有严格缩进的代码
#include <bits/stdc++.h>
using namespace std;

int main() {
int c1, c2, r1, r2;
	int x1, x2, x3, x4;
	int start_row, start_col;
int dist1, dist2;

cin >> c1 >> c2 >> r1 >> r2;
	cin >> x1 >> x2 >> x3 >> x4;
	cin >> start_row >> start_col >> dist1 >> dist2;
	
	vector<array<int, 4>> results;
	
function<void(int, int, int)> dfs = [&](int step, int prev_row, int prev_col) {

	bool row_used[6] = {false};
		bool col_used[6] = {false};
		
	if (step == 1) {
		col_used[c1] = true;
			col_used[c2] = true;
row_used[r1 - x3] = true;
			row_used[r2 + x4] = true;
		} else {
	col_used[c1 + x1] = true;
			col_used[c2 - x2] = true;
			row_used[r1 - x3] = true;
			row_used[r2 + x4] = true;
	}
		
	int target_dist = (step == 0) ? dist2 : dist1;

		for (int curr_row = 1; curr_row <= 5; curr_row++) {
		if (row_used[curr_row]) continue;
			
		for (int curr_col = 1; curr_col <= 5; curr_col++) {
		if (col_used[curr_col]) continue;
			int manhattan_dist = abs(curr_row - prev_row) + abs(curr_col - prev_col);
				if (manhattan_dist == target_dist) {
					if (step == 0) {
						dfs(step + 1, curr_row, curr_col);
					} else {
						results.push_back({curr_row, curr_col, prev_row, prev_col});
		}
				}
			}
	}
	};

	dfs(0, start_row, start_col);
	sort(results.begin(), results.end());
	for (auto &coord : results) {
	cout << coord[0] << " " << coord[1] << " " << coord[2] << " " << coord[3] << "\n";
	}
	return 0;
}

2.正括号不要另起一行写。比如:

//标准写法
if(a){
    b = a >> 1;
    sfp(b);
}

//不太标准写法1
if(a != 0)
{
    b = a / 2;
    sfp(b);
}

//不太标准写法2
if(a){
    b=a>>1;
    sfp(b);
}

3.如同2代码所示,变量与符号间最好用空格隔开,易于阅读代码,否则会变得臃肿不堪。

4.尽量简洁书写,该省略的就省略。例如:判断某个数是否为0,只需判断这个数是否为真即可。另外,如果if语句和循环内指令只有1个,可不必添加大括号。

//简洁写法
if(b)
    c = 55;
    
for(int i = m;i <= n;i ++){
    int j;
    for(j = 2;j <= sqrt(i);j ++)
        if(!(i % j))
            break;
    if(j > sqrt(i))
        puts("Yes");
    else
        puts("No");
}
    
    

//不太简洁的写法
if(b != 0){
    c = 55;
}

for(int i = m;i <= n;i ++){
    int j;
    for(j = 2;j <= sqrt(i);j ++){
        if(i % j == 0){
            break;
        }
    }
    if(j > sqrt(i)){
        puts("Yes");
    }else{
        puts("No");
    }
}

5.区域之间最好换行,易于阅读代码。


以上就是这节课的全部内容了,感谢大家阅读~如果有什么疑问或见解,欢迎通过QQ(847075097)前来交流!