算法实现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. 选择 ...
随机推荐
- jquery中美元符号($)命名冲突
http://blog.csdn.net/shanshan209/article/details/6341727 在Jquery中,$是JQuery的别名,所有使用$的地方也都可以使用JQuery来替 ...
- Gvim 和 Opencv编译
好奇看了一下Gvim编译器:在官网上也有介绍,github上有源码,安装在电脑上,感觉需求不大,记那些命令也太多了.然后编译opencv过程中cmake成功了,但是VS下编译报了很多错,准备不搞这些了 ...
- 《从0到1》读书笔记第一章"未来的挑战"第2记:做老子还是做孙子
从1到N VS 从0到1 - 别让自己的小鸡鸡抓在别人的手上 近几年国内互联网创业上非常流行一种C2C(也就是Copy to China - 复制到中国)的创业模式,打的就是一个时间差和地域差.将在国 ...
- java解析xml汇总
[目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...
- C# Ftp方式下载文件(无用户认证方式,支持断点续传)
类代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...
- Solidworks输出Autocad的DWG格式乱码怎么办
Solidworks输出DWG会有很多问题,如果没必要就别这么做,比如你只是想要打印图纸,Solidworks也可以直接打印,而且很方便,不需要转成DWG再打印,如果对方确实需要DWG格式的图纸,你只 ...
- Cocos2d-x 3.0final 终结者系列教程15-win7+vs2012+adt+ndk环境搭建(无Cygwin)
最终不用Cygwin 了.非常高兴 为什么要用Win7? 由于VS2012要求Win7以上系统才干安装! 为什么要用vs2012? 由于VS2012才支持C++11! 为什么要支持C++11? 由于C ...
- 【每日Scrum】第三天(4.13) TD学生助手Sprint1站立会议
TD学生助手Sprint1站立会议(4.13) 任务看板 站立会议内容 组员 昨天 今天 困难 签到 刘铸辉 (组长) 昨天完成了课程的增删改查功能 今天早晨静姐调整了下界面和配色,下午和宝月兄一起做 ...
- UVA 10042 Smith Numbers(数论)
Smith Numbers Background While skimming his phone directory in 1982, Albert Wilansky, a mathematicia ...
- GreenPlum 安装方法详解
一.安装环境准备 1.磁盘环境准备 磁盘分区典型配置如下: 文件系统 文件格式 大小 / ext3 50GB,Linux系统的根目录,所有的目录都挂在这个目录下面,建议大小为 ...