算法实现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. 选择 ...
随机推荐
- 使用TypeDescriptor给类动态添加Attribute【转】
源文 : http://www.cnblogs.com/bicker/p/3326763.html 给类动态添加Attribute一直是我想要解决的问题,从msdn里找了很久,到Stack Overf ...
- String空格删除和java删除字符串最后一个字符的几种方法
1. String.trim()trim()是去掉首尾空格2.str.replace(" ", ""); 去掉所有空格,包括首尾.中间复制代码 代码如下:Str ...
- 关于Gradle配置的小结
前言 使用 Android Studio 来开发 Android 工程的过程中,接触 Gradle 是不可避免的,比如配置签名.引入依赖等.那么 Gradle 到底是什么东西呢? Gradle 是一个 ...
- hdu1034 简单模拟
这里开一个二维数组.num[105][2]; 我也不知道N有多少,随便开的, 那么这里num[i][0] 表示当前 第 i 个人拥有的糖果数,num[i][1]表示他上面一个人分给他的糖果数.详 ...
- PHP如何学习?
PHP 的学习,可以归纳为三个类型: 语言的基础语法学习,这些是 ifelse, while, switch, class, function, trait 等: 内置函数/类学习,这 ...
- odoo生产物流
odoo生产从raw materials location 自动消耗物料,产成品进入到finish productslocation. 而odoo自动产生的MO[manufacture Order], ...
- Quality control
定义测试 为测试添加测试项 测试项目按类型分2种 Qualitative 定性,描述类的,比如颜色,是,否 Quantitative 定量,有明确的衡量 定性 ...
- C++学习总结1
一.内存管理 一般new 与 delete 同时出现.假如释放一个对象用 delete p即可.多个对象用delet [ ]p 即:new与delete需要搭配好. C++继承了C的许多函数,mal ...
- Cent OS下发送邮件
首先安装发送邮件的服务: yum install -y sendmail 安装完成之后在安装mutt yum install -y mutt 安装完成之后我们就可以发送邮件了 mutt tes ...
- 关于Swiper(概念)
Swiper 是一款免费以及轻量级的移动设备触控滑块的js框架,使用硬件加速过渡(如果该设备支持的话). 主要使用于移动端的网站.移动web apps,native apps和hybrid apps. ...