算法实现c语言--01
- 打印九九乘法表
- #include<stdio.h>
- #include<stdlib.h>
- int main()
- {
- int i = , j = ;
- for (i = ; i <= ; i++)
- {
- for (j = ; j <= ; j++)
- {
- printf("%d * %d = %d \n", i, j, i * j);
- }
- }
- system("pause");
- return ;
- }
2.打印如下图形
(1)
- #include<stdio.h>
- #include<stdlib.h>
- int main()
- {
- int i = , j = , k = , m = ;
- for (i = ; i <= ; i++)
- {
- for (j = ; j <= ; j++)
- {
- if (j < )
- {
- if (j / k == )
- printf(" ");
- else printf("*");
- }
- if (j == )printf("*");
- if (j >= )
- {
- if (j / m == )
- printf("*");
- else printf(" ");
- }
- }
- if (i < && k > )
- {
- k--;
- m++;
- }
- if (i >= )
- {
- k++;
- m--;
- }
- printf("\n");
- }
- system("pause");
- return ;
- }
(2)
- #include<stdio.h>
- #include<stdlib.h>
- int main()
- {
- int i = , j = , k = , m = ;
- for (i = ; i <= ; i++)
- {
- for (j = ; j <= ; j++)
- {
- if (j < )
- {
- if (j ==k)
- printf("*");
- else printf(" ");
- }
- //if (j == 5)printf("*");
- if (j >= )
- {
- if (j ==m)
- printf("*");
- else printf(" ");
- }
- }
- if (i < && k > )
- {
- k--;
- m++;
- }
- if (i >= )
- {
- k++;
- m--;
- }
- printf("\n");
- }
- system("pause");
- return ;
- }
(3)
- #include<stdio.h>
- #include<stdlib.h>
- int main()
- {
- int i = , j = , tmp1 = , tmp2 = ;
- for (i = ; i < ; i++)
- {
- if (i == )
- printf("\n");
- else
- {
- for (j = ; j > i; j--)
- {
- printf(" ");
- }
- for (int m = ; m <= j; m++)
- {
- printf("* ");
- }
- for (int k = ; k >i; k--)
- {
- printf(" ");
- }
- for (int m = ; m <= j; m++)
- {
- printf("* ");
- }
- printf("\n");
- }
- }
- for (int i = ; i<; i++)
- {
- for (int m = ; m < i; m++)
- {
- printf(" ");//先打印空格
- }
- for (int j = i; j<; j++)
- {
- printf("* ");
- }
- printf("\n");
- }
- system("pause");
- return ;
- }
3
(1)求两个有序数组的公共元素
- #include<stdio.h>
- #include<stdlib.h>
- //求两个有序数组的公共元素
- int main()
- {
- int a[] = { ,,,, }, b[] = { ,,,, };
- int ret[],cnt=;
- for (int i = ; i < ; i++)
- {
- for (int j = ; j < ; j++)
- {
- if (a[i] == b[j])ret[cnt ++ ] = b[j];
- else continue;
- }
- }
- for (int i = ; i < cnt; i++)printf("%d ", ret[i]);
- printf("\n");
- system("pause");
- return ;
- }
(2) 求三个有序数组的公共元素。
- #include<stdio.h>
- #include<stdlib.h>
- //求三个有序数组的公共元素
- #define A 5
- #define B 5
- #define C 5
- int main()
- {
- int a[A] = { ,,,, }, b[B] = { ,,,, }, c[C] = { ,,,, };
- int ret[], cnt = ;
- for (int i = ; i < ; i++)
- {
- for (int j = ; j < ; j++)
- {
- for (int k = ; k < ; k++)
- {
- if (a[i] == b[j] && b[j] == c[k])
- {
- ret[cnt++] = c[k];
- }
- else continue;
- }
- }
- }
- for (int i = ; i < cnt; i++)printf("%d ", ret[i]);
- printf("\n");
- system("pause");
- return ;
- }
(2) 求n个有序数组的公共元素。
- #include<stdio.h>
- #include<stdlib.h>
- //求N个有序数组的公共元素
- #define A 5
- #define N 3
- int main()
- {
- int a[N][A] = { ,,,,, ,,,, , ,,,, };
- int ret[], cnt = ;
- for (int i = ; i < ; i++)
- {
- for (int j = ; j < ; j++)
- {
- for (int k = ; k < ; k++)
- {
- if (a[][i] == a[][j] && a[][j] == a[][k])
- {
- ret[cnt++] = a[][k];
- }
- else continue;
- }
- }
- }
- for (int i = ; i < cnt; i++)printf("%d ", ret[i]);
- printf("\n");
- system("pause");
- return ;
- }
4.求数组的最大值和次大值。
- #include<stdio.h>
- #include<stdlib.h>
- //求数组的最大值和次大值
- #define A 11
- #define max(a, b) (a) > (b)? (a) : (b)
- int *fun(int *a)
- {
- int ret[],j=;
- for (int i = ; i < a; i++)
- {
- ret[j%] = max(ret[j % ], a[i]);
- j++;
- }
- printf("%d %d", ret[], ret[]);
- return ret;
- }
- int main()
- {
- int a[A] = { ,,,,,,,,,, };
- fun(a);
- printf("\n");
- system("pause");
- return ;
- }
5.给定一个n个整型元素的数组a,其中有一个元素出现次数超过n / 2,求这个元素。
- #include<stdio.h>
- #include<stdlib.h>
- #define n 10
- int fun(int *a,int cnt)
- {
- int curValue = a[];
- for (int i = ; i < n; i++)
- {
- if (a[i] == curValue)cnt++;
- else
- {
- cnt--;
- if (cnt < )
- {
- curValue = a[i];
- cnt = ;
- }
- }
- }
- return curValue;
- }
- int main()
- {
- int a[n] = { ,,,,,,,,, };
- int i = ,cnt=;
- int ret = {};
- ret = fun(a,cnt);
- //while (ret[i] == ret[i+1])cnt++;
- printf("这个数是%d", ret);
- printf("\n");
- system("pause");
- return ;
- }
6.给定一个含有n个元素的整型数组,找出数组中的两个元素x和y使得abs(x - y)值最小
- #include<stdio.h>
- #include<stdlib.h>
- #include<math.h>
- #define n 10
- int main()
- {
- int a[n] = { ,-,,,,,,,, };
- int i = , j = , ret[] = { a[]-a[], }, loc[];
- for (i = ; i < n; i++)
- {
- for (j = i+; j < n; j++)
- {
- ret[] = abs(a[i] - a[j]);
- printf("%d\n", ret[]);
- if (ret[] == )
- {
- loc[] = a[i];
- loc[] = a[j];
- i = n;
- j = n;
- break;
- }
- if (ret[] > ret[])
- {
- ret[] = ret[];
- loc[] = a[i];
- loc[] = a[j];
- }
- else
- {
- continue;
- }
- }
- }
- printf("%d %d", loc[], loc[]);
- printf("\n");
- system("pause");
- return ;
- }
8. 给定含有1001个元素的数组,其中存放了1-1000之内的整数,只有一个整数是重复的,请找出这个数
A1 + … + A1001 – (1 + …+ 1000)
- #include<stdio.h>
- #include<stdlib.h>
- #define N 1001
- int main()
- {
- int a[N],sum=,suma= ,ret=;
- for (int i =; i < ; i++)
- {
- a[i] = i+;
- }
- a[] = ;
- for (int i = ; i < ; i++)
- {
- sum += i;
- }
- for (int i = ; i < ; i++)
- {
- suma += a[i];
- }
- ret = suma - sum;
- printf("%d", ret);
- printf("\n");
- system("pause");
- return ;
- }
算法实现c语言--01的更多相关文章
- PID算法(c 语言)(转)
PID算法(c 语言)(来自老外) #include <stdio.h> #include<math.h> //定义PID 的结构体 struct _pid { int pv; ...
- 魔方阵算法及C语言实现
1 魔方阵概念 填充的,每一行.每一列.对角线之和均相等的方阵,阶数n = 3,4,5….魔方阵也称为幻方阵. 例如三阶魔方阵为: 魔方阵有什么的规律呢? 魔方阵分为奇幻方和偶幻方.而偶幻方又分为是4 ...
- 一个UUID生成算法的C语言实现 --- WIN32版本 .
一个UUID生成算法的C语言实现——WIN32版本 cheungmine 2007-9-16 根据定义,UUID(Universally Unique IDentifier,也称GUID)在时 ...
- 无限大整数相加算法的C语言源代码
忙里偷闲,终于完成了无限大整数相加算法的C语言代码,无限大整数相加算法的算法分析在这里. 500位的加法运行1000次,不打印结果的情况下耗时0.036秒,打印结果的情况下耗时16.285秒. 下面是 ...
- 数据结构算法集---C++语言实现
//数据结构算法集---C++语言实现 //各种类都使用模版设计,可以对各种数据类型操作(整形,字符,浮点) /////////////////////////// // // // 堆栈数据结构 s ...
- 1164: 零起点学算法71——C语言合法标识符(存在问题)
1164: 零起点学算法71——C语言合法标识符 Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 10 ...
- 【最全】经典排序算法(C语言)
算法复杂度比较: 算法分类 一.直接插入排序 一个插入排序是另一种简单排序,它的思路是:每次从未排好的序列中选出第一个元素插入到已排好的序列中. 它的算法步骤可以大致归纳如下: 从未排好的序列中拿出首 ...
- 一个UUID生成算法的C语言实现——WIN32版本
源: 一个UUID生成算法的C语言实现——WIN32版本
- 排序算法总结(C语言版)
排序算法总结(C语言版) 1. 插入排序 1.1 直接插入排序 1.2 Shell排序 2. 交换排序 2.1 冒泡排序 2.2 快速排序 3. 选择 ...
随机推荐
- 转帖:HttpStatusCode状态说明C#版
Continue 等效于 HTTP 状态 100.Continue 指示客户端可能继续其请求. SwitchingProtocols 等效于 HTTP 状态 101.SwitchingProtocol ...
- 如何使用电骡eMule上传资源
1 在电脑中创建一个文件夹专门为上传资源使用 在里面放入任意文件并右击显示ED2K链接 链接效果如下 2 登陆verycd网站,并点击上传资源 复制ED2K地址并选择分类
- Android--绑定服务调用服务的方法
Service依照其启动的方式,可分为两种: 1.Started Started的Service.通过在Application里用startService(Intent intent)方法来启动.这样 ...
- android 5.X Toolbar+DrawerLayout实现抽屉菜单
前言 android5.X新增的一个控件Toolbar,这个控件比ActionBar更加自由,可控,因为曾经的ActionBar的灵活性比較差,所以google逐渐使用Toolbar替代Action ...
- vs2012编译ffmpeg
从官方网站down下来的ffmpeg没有pdb文件不方便调试,为此使用VS2012编译ffmpeg. 编译步骤: 一.安装MinGW,具体的安装方法上一篇文章已经有介绍这里不在赘述. 二.下载文件并放 ...
- Python中cv2库和matplotlib库色彩空间排布不一致
今天在python中读如图片时发现以下问题: 1.在from matplotlib import pyplot as plt之后,再import cv2 cv2.imshow()不能正常使用,还不知道 ...
- 为公司做crm资产管理
一.实现会议室预定 二.实现调查问卷 三.项目背景初始化分析 四.简单的登陆注册 五.学生管理 六.老师管理 七.销售管理 八.客户关系管理 九.抢单管理 十.微信发消息发邮件管理 补充:数据表设计. ...
- js实现网页端复制功能
实现网页端复制功能: <div id="copyInput" style="display:none;"> <form> <inp ...
- PHP框架的基本原理以及选择标准
PHP框架的原理 说到PHP框架,可能很多PHP新手会感到有些胆怯.其实,PHP框架也不是那么深不可测的,框架就是别人使用PHP基础只是为你写好了的东西,只是封装在一起:这就好比我们使用PHP的函数, ...
- eclipse的debug使用(转载)
出处:http://www.blogjava.net/yxhxj2006/archive/2012/08/30/386621.html 远程Debug: http://blog.sina.com.cn ...