算法实现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. 选择 ...
随机推荐
- python的私有化
1.双下划线(__) 由双下划线開始的属性在执行时被混淆,所以直接訪问是不同意的.实际上以双下划线開始的属性 会在解释时在前面加上下划线和类名.如self.__num会被解析为self._classN ...
- 如何使用电骡eMule上传资源
1 在电脑中创建一个文件夹专门为上传资源使用 在里面放入任意文件并右击显示ED2K链接 链接效果如下 2 登陆verycd网站,并点击上传资源 复制ED2K地址并选择分类
- vue2.0 自定义 折叠列表(Accordion)组件
1.自定义 折叠列表 Accordion.vue (1)sass 版本 <!-- 折叠列表 组件 --> <template> <nav :class="$ ...
- android客户端向服务器端验证登陆方法的实现1
遇到的问题:一个条件查询与多个条件查询,所用到的方式不一样 参考文档: http://www.oschina.net/question/1160609_133366 mybatis多条件查询的一 ...
- EasyUI datagrid border处理,加边框,去边框,都可以,easyuidatagrid
下面是EasyUI 官网上处理datagrid border的demo: 主要是这句: $('#dg').datagrid('getPanel').removeClass('lines-both li ...
- Django-中介模型
有多对多字段的时候自己创建的第三章表就是中介模型 class Article(models.Model): ''' 文章表 ''' title = models.CharField(max_lengt ...
- 韦东山 第9课第1节.u-boot分析之编译体验 http://www.100ask.net/index.html
http://www.100ask.net/index.html 韦东山官网网址 http://wenku.baidu.com/view/ae78a00390c69ec3d5bb75ce.html h ...
- MySQL 导入导出命令(转载)
导出数据: mysqldump --databases -u root -p密码 数据库名> /root/guogl/XXX.sql 从sql文件导入数据: mysql -u root -p密码 ...
- gridview 横向滚动 一行显示
http://blog.csdn.net/chin3q/article/details/6559345 http://blog.csdn.net/yuzhouxiang/article/details ...
- RS485总线典型电路介绍
一.RS485总线介绍: RS485总线是一种常见的串行总线标准,采用平衡发送与差分接收的方式,因此具有抑制共模干扰的能力.在一些要求通信距离为几十米到上千米的时候,RS485总线是一种应用最为广泛的 ...