1. 打印九九乘法表
#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的更多相关文章

  1. PID算法(c 语言)(转)

    PID算法(c 语言)(来自老外) #include <stdio.h> #include<math.h> //定义PID 的结构体 struct _pid { int pv; ...

  2. 魔方阵算法及C语言实现

    1 魔方阵概念 填充的,每一行.每一列.对角线之和均相等的方阵,阶数n = 3,4,5….魔方阵也称为幻方阵. 例如三阶魔方阵为: 魔方阵有什么的规律呢? 魔方阵分为奇幻方和偶幻方.而偶幻方又分为是4 ...

  3. 一个UUID生成算法的C语言实现 --- WIN32版本 .

    一个UUID生成算法的C语言实现——WIN32版本   cheungmine 2007-9-16   根据定义,UUID(Universally Unique IDentifier,也称GUID)在时 ...

  4. 无限大整数相加算法的C语言源代码

    忙里偷闲,终于完成了无限大整数相加算法的C语言代码,无限大整数相加算法的算法分析在这里. 500位的加法运行1000次,不打印结果的情况下耗时0.036秒,打印结果的情况下耗时16.285秒. 下面是 ...

  5. 数据结构算法集---C++语言实现

    //数据结构算法集---C++语言实现 //各种类都使用模版设计,可以对各种数据类型操作(整形,字符,浮点) /////////////////////////// // // // 堆栈数据结构 s ...

  6. 1164: 零起点学算法71——C语言合法标识符(存在问题)

    1164: 零起点学算法71——C语言合法标识符 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 10 ...

  7. 【最全】经典排序算法(C语言)

    算法复杂度比较: 算法分类 一.直接插入排序 一个插入排序是另一种简单排序,它的思路是:每次从未排好的序列中选出第一个元素插入到已排好的序列中. 它的算法步骤可以大致归纳如下: 从未排好的序列中拿出首 ...

  8. 一个UUID生成算法的C语言实现——WIN32版本

    源: 一个UUID生成算法的C语言实现——WIN32版本

  9. 排序算法总结(C语言版)

    排序算法总结(C语言版) 1.    插入排序 1.1     直接插入排序 1.2     Shell排序 2.    交换排序 2.1     冒泡排序 2.2     快速排序 3.    选择 ...

随机推荐

  1. 视图交互--表视图(UITableView)的cell交互析略

    在表视图UITableView的cell上经常有一些交互,根据项目开发中的情况,需要对此进行一些规范.总结出了几种交互方法,这些方法在其他视图的交互上同样可以适用.用一个简单的例子来举例说明一下,其他 ...

  2. navicat小经验和快捷键

    1.有时按快捷键Ctrl+F搜某条数据的时候搜不到,但是能用sql查出来,这是怎么回事? Ctrl+F只能搜本页数据,不在本页的数据搜不到,navicat每页只显示1000条数据.在数据多的时候nav ...

  3. 免费DNSserver有哪些?

    DNS 是上网中极其重要的一环,因为电脑仅仅认识数字组成的 IP 地址,人们发明了域名来帮助记忆 (如 iPlaySoft.com),因此,在訪问不论什么域名时.背后都须要一台 DNS server来 ...

  4. Selenium + Nightwatch 自动化测试环境搭建

    首先要安装 Java 7 或更高 ,(http://www.oracle.com/technetwork/java/javase/downloads/index.html) 并且 java 命令可正常 ...

  5. Python遍历列表

    #循环遍历列表 nums = [ss,gg,e,fff,bb] #while循环遍历,但是不推荐使用,因为还要把列表的元素数出来 i = 0 while i<5: print(nums[i]) ...

  6. caffe搭建--WINDOWS+VS2013下生成caffe并进行cifar10分类测试

    http://blog.csdn.net/naaaa/article/details/52118437 标签: windowsvs2013caffecifar10 2016-08-04 15:33 1 ...

  7. 【ZZ】Visual C++ 6.0 精简安装版(支持VA、ICC 等等安装)

    (2012-04-22 08:10:10) 标签: it 分类: 软件_Software Visual C++ 6.0 精简安装版(支持VA.ICC 等等安装) 2012-04-16 21:07 想找 ...

  8. javascript点滴积累

    1. javascript中的array, set, map 均为数据容器,使用iterable内置的forEach方法 var a = ['A', 'B', 'C'];a.forEach(funct ...

  9. JSP学习笔记(一)

    JSP是基于JAVA语言的,区分大小写,HTML不区分大小写 如何建立Web服务目录? 1.在Webapps下面建立Web服务目录MYJSP 在Webapps下面新建文件夹MYJSP,将写好的jsp文 ...

  10. java transient关键字(转载)

    博客来源:http://www.blogjava.net/fhtdy2004/archive/2009/06/20/286112.html Volatile修饰的成员变量在每次被线程访问时,都强迫从主 ...