第三周第二天:C基础

1.数组的排序方法之一:冒泡排序
        对于一个乱序的数组,可以使用冒泡排序的方法对其进行排序,具体的方法是:从头开始比较两个相邻的元素,每次比较都要将较大的数字放在两个元素的右边,完成交换。之后依次进行第二个数和第三个数,以此类推,到最后就会将一个最大的数字放在最后,如此继续,就能将第二大的数字放在倒数第二个位置上,完成嵌套循环之后,就完成了冒泡排序的过程。


冒泡排序的过程

         当遇到相等的元素不需要交换的时候,冒泡排序就是很好的排序算法。

2.C基础部分:命名规则

(1)变量名的开头必须是字母或下划线,不能是数字。

(2)变量名中的字母是区分大小写。

(3)变量名绝对不可以是C语言关键字。

(4)变量名中不能有空格。

3.C基础部分:if-else if-else

(1)if基本的表达形式是:if (表达式) 语句1  else 语句2 

(2)表达式中的关系运算符和逻辑运算符:关系运算符的作用就是判明这两个表达式的大小关系。


C语言中的关系运算符

关系运算符的运算结果只有 0 或 1。当条件成立时结果为 1,条件不成立结果为 0,在if中1则表示成立,成立即可进行if下的语句,不成立的时候只能去进行else中的语句。else if是存在多种情况时候使用的语句,可以使用else if进行多次判断并且执行满足判断条件的语句。

        逻辑运算符指的是通过逻辑运算得出真或假的值,通过逻辑运算,可以减少嵌套if或是else if的使用。


C语言中的逻辑运算符

4:C基础部分:for循环

        for循环的基础形式是:

        for (循环变量赋初值; 循环条件; 循环变量增值)

{

    语句;

}

        通过for循环可以清楚的看到,循环条件,循环变量的变化情况,通过初值也可以进行一些数组的操作,对于反复多次的计算可以很方便的去得到结果。

5.作业题:

(1)将a数组中第一个元素移到数组末尾,其余数据依次往前平移一个位置。(长度是8)

#include<stdio.h>

#include<stdlib.h>

int *initArray();

void changeSeat(int *a);

void travelArray(int *a);

int main() {

int *ArrayList = initArray();

travelArray(ArrayList);

changeSeat(ArrayList);

travelArray(ArrayList);

system("pause");

return 0;

}

int *initArray() {

printf("please input a Array:\n");

int *a = (int *)malloc(8 * sizeof(int));

for (int i = 0; i < 8; i++) {

scanf("%d", &a[i]);

}

return a;

}

void changeSeat(int *a) {

int temp;

for (int i = 0; i < 7; i++) {

temp = a[i];

a[i] = a[i + 1];

a[i + 1] = temp;

}

}

void travelArray(int *a) {

printf("Array: ");

for (int i = 0; i <8; i++) {

printf("%d ", a[i]);

}

printf("\n");

}

(2)查找序列中是否存在35这一数据  

#include<stdio.h>

#include<stdlib.h>

int *initArray();

void findNum(int *a, int num);

int main() {

int *ArrayList = initArray();

printf("Please input a num that you want to find:\n");

int TestNum;

scanf("%d", &TestNum);

findNum(ArrayList, TestNum);

system("pause");

return 0;

}

int *initArray() {

printf("please input a 8-size Array:\n");

int *a = (int *)malloc(8 * sizeof(int));

for (int i = 0; i < 8; i++) {

scanf("%d", &a[i]);

}

return a;

}

void findNum(int *a, int num) {

int left = 0;

int right = 7;

int mid = 0;

while (left <= right) {

mid = (left + right) / 2;

if (a[mid] < num) {

left = mid + 1;

}

else if (a[mid] > num) {

right = mid - 1;

}

else {   

break;

}

}

if (left <= right) {

printf("The num is:%d in:%d", a[mid], mid+1);

}

else {

printf("Can't find the num!!!");

}

}

(3)统计具有10个元素的自然数数组 nun 中的奇数个数
#include<stdio.h>

#include<stdlib.h>

int *initArray();

int theNumOfOdd(int *a);

int main() {

int *ArrayList = initArray();

printf("The Num Of Odd is:%d\n", theNumOfOdd(ArrayList));

system("pause");

return 0;

}

int *initArray() {

printf("please input a 10-size Array:\n");

int *a = (int *)malloc(10 * sizeof(int));

for (int i = 0; i < 10; i++) {

scanf("%d", &a[i]);

}

return a;

}

int theNumOfOdd(int *a) {

int TempNum = 0;

for (int i = 0; i < 10; i++) {

if (a[i] % 2 != 0) {

TempNum++;

}

else {

continue;

}

}

return TempNum;

}

(4)将一个无序数组{54,37,62,13,89,73,65,42}排序

#include<stdio.h>

#include<stdlib.h>

int *initArray();

void travelArray(int *a);

void sortArray(int *a);

int main() {

int *ArrayList = initArray();

travelArray(ArrayList);

sortArray(ArrayList);

travelArray(ArrayList);

system("pause");

return 0;

}

int *initArray() {

printf("please input a 8-size Array:\n");

int *a = (int *)malloc(8 * sizeof(int));

for (int i = 0; i < 8; i++) {

scanf("%d", &a[i]);

}

return a;

}

void sortArray(int *a) {

for (int i = 0; i < 7; i++) {

for (int j = 0; j < 7-i; j++) {

int temp = 0;

if (a[j] > a[j + 1]) {

temp = a[j];

a[j] = a[j + 1];

a[j + 1] = temp;

}

}

}

}

void travelArray(int *a) {

printf("Array: ");

for (int i = 0; i <8; i++) {

printf("%d ", a[i]);

}

printf("\n");

}

(5)斐波那契数列

#include<stdio.h>

#include<stdlib.h>

int Fibonacci(int n);

int main() {

printf("Input the length of Fibonacci:\n");

int n = 0;

scanf("%d", &n);

for (int i = 1; i <= n; i++) {

printf("Fibonacci(%d)=%d\n", i, Fibonacci(i));

}

system("pause");

return 0;

}

int Fibonacci(int n) {

if (n == 1 || n == 2) {

return 1;

}

else {

return Fibonacci(n - 1) + Fibonacci(n - 2);

}

}

(6)哥德巴赫猜想  

#include<stdio.h>

#include<stdlib.h>

void Goldbach(int n);

int main() {

int t;

printf("请输入数字,输入0停止:\n");

scanf("%d", &t);

while (t!=0){

Goldbach(t);

scanf("%d", &t);

}

system("pause");

return 0;

}

void Goldbach(int n) {

int *a = (int *)malloc(n * sizeof(int));

int temp = 0;

if (n % 2 != 0||n<=2) {

printf("请输入一个偶数且大于2!\n");

}

else {

for (int i = 2; i <= n; i++) {

for (int j = 2; j <= i; j++) {

if (i%j == 0 && i != j) {

break;

}

if (i == j&&i%j == 0) {

a[temp] = i;

temp++;

}

}

}

}

for (int i = 0; i < temp; i++) {

int temp1;

temp1 = n - a[i];

for (int j = 0; j < temp; j++) {

if (temp1 == a[j]&&temp1<=a[i]) {

printf("%d=%d+%d\n", n, temp1, a[i]);

}

}

}

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,135评论 6 514
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,317评论 3 397
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,596评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,481评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,492评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,153评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,737评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,657评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,193评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,276评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,420评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,093评论 5 349
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,783评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,262评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,390评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,787评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,427评论 2 359

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,348评论 0 2
  • C语言的学习要从基础开始,这里是100个经典的算法-1C语言的学习要从基础开始,这里是100个经典的 算法 题目:...
    Poison_19ce阅读 1,146评论 0 0
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,034评论 0 2
  • 50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈~ 1.指数...
    OSET我要编程阅读 6,965评论 0 9
  • 作业整理; 指针的基本的结构与基础知识整理; 作业讲解:(1) 将2~100之间的素数 保存到数组中,并遍历输出,...
    比莉吉恩阅读 369评论 0 0