C语言数组实例(冒泡算法、猜数字)

简介: C语言数组实例(冒泡算法、猜数字)

一、冒泡算法


#include <stdio.h>
#include <stdlib.h>
int main() {
       int a[] = { 1,6,3,8,5 };
       int b[][3] = { {1,2,3},{4,5,6},{7,8,9} };
       printf("一维数组的首元素地址:%p\n", a);
       printf("一维数组的首元素地址:%p\n", &a[0]);
       printf("一维数组的大小:%d\n", sizeof(a));
       printf("一维数组第0个元素的大小:%d\n", sizeof(a[0]));
       printf("一维数组第0个元素的个数:%d\n", sizeof(a)/sizeof(a[0]));
       printf("二维数组的首元素地址:%p\n", b);
       printf("二维数组的首元素地址:%p\n", &b[0]);
       printf("二维数组的首元素地址:%p\n", &b[0][0]);
       printf("二维数组的大小:%d\n", sizeof(b));
       printf("二维数组第1行元素的大小:%d\n", sizeof(b[0]));
       printf("二维数组第1个元素的大小:%d\n", sizeof(b[0][0]));
       int n = sizeof(a) / sizeof(a[0]);
       int tmp;
       for (int i = 0; i < n - 1; i++)
       {
              for (int j = 0; j < n - 1 - i; j++) {
                     if (a[j] > a[j + 1]) {
                           tmp = a[j];
                           a[j] = a[j + 1];
                           a[j + 1] = tmp;
                     }
              }      
       }
       for (int i=0; i < n; i++) {
              printf("%d-", a[i]);
       }
       system("pause");
       return 0;
}


0a2653c851af460fa595bd959398a8f1.png


二、猜数字


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
       int rand_num[4]; //随机生成一个数,要猜的数字
       int cai_num[4]; //保存要输出来的数字
       int num;//输入的数字
       int n = 0;
       int i = 0;
       printf("猜数字开始啦!系统已生成四位数字");
       srand((unsigned int)time(NULL));//以当前时间设置随机种子
       for (i=0;i<4;i++)
       {
              rand_num[i] = rand() % 10;
       }
       while (1)
       {
              printf("\n请输入一个4位的数字");
              scanf_s("%d", &num);
              cai_num[0] = (num / 1000) % 10;
              cai_num[1] = (num / 100) % 10;
              cai_num[2] = (num / 10) % 10;
              cai_num[3] = num % 10;
              n = 0;
              for (i=0;i<4;i++)
              {
                     if (cai_num[i]>rand_num[i])
                     {
                           printf("第%d位大于正确数字。\n", i+1);
                     }
                     else if(cai_num[i] < rand_num[i]){
                           printf("第%d位小于正确数字。\n", i+1);
                     }
                     else
                     {
                           printf("第%d位正确。\n", i+1);
                           n++;
                     }
              }
              if (4==n)
              {
                     printf("恭喜猜对了");
                     system("pause");
              }
       }
       return 0;
}

0eacb84100b54626af849e6b562bf92a.png


目录
相关文章
|
3天前
|
存储 C语言
C语言——数组(下)
C语言——数组(下)
9 0
C语言——数组(下)
|
3天前
|
C语言
C语言——数组(上)
C语言——数组(上)
10 0
|
4天前
|
C语言
每天一道C语言编程(数组操作)
每天一道C语言编程(数组操作)
7 0
|
4天前
|
C语言
每天一道C语言编程(第一弹~):数组
每天一道C语言编程(第一弹~):数组
9 0
|
4天前
|
算法 C语言 人工智能
|
4天前
|
算法 C语言
C语言易混淆、简单算法、结构体题目练习、常见关键字总结-2
C语言易混淆、简单算法、结构体题目练习、常见关键字总结
|
4天前
|
算法 编译器 API
C语言易混淆、简单算法、结构体题目练习、常见关键字总结-1
C语言易混淆、简单算法、结构体题目练习、常见关键字总结
|
4天前
|
存储 算法 Java
数据结构与算法 数组和链表
数据结构与算法 数组和链表
12 0
|
4天前
|
机器学习/深度学习 C语言
C语言三维数组的创建
该代码片段展示了如何在C语言中创建一个动态的3D数组。由于`n`在编译时未知,不能直接声明为`int f[n][n][n]`。正确的方法是使用`malloc`进行动态内存分配。首先分配`n`个`int **`,然后对每一层分配`n`个`int *`,最后每个元素分配`n`个`int`。之后可以使用这个3D数组,并在完成后正确释放内存。
12 2
|
存储 算法 固态存储
C/C++常用算法【C语言顺序查找(顺序表)】【2】
顺序表结构的存储方式非常容易理解,操作也十分方便。但是顺序表结构有如下一些缺点: 1.在插入或者删除结点时,往往需要移动大量的数据。 2.如果表比较大,有时难以分配足够的连续存储空间,往往导致内存分配失败,而无法存储。
954 0