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. 谈谈Runtime类中的freeMemory,totalMemory,maxMemory几个方法

    最近在网上看到一些人讨论到java.lang.Runtime类中的freeMemory(),totalMemory(),maxMemory ()这几个方法的一些问题,很多人感到很疑惑,为什么,在jav ...

  2. vs附加到多个进程调试

    我们用vs调试,通常附加到一个进程进行调试,有时候需要同时附加到多个进程. 例如:同时调试客户端与服务端,我们需要同时附加到客户端与服务端进程. 按F5(执行)键调试,程序只要遇到断点就中断. 按F1 ...

  3. selector的button选中处理问题

    1.背景介绍 在做Android项目开发的时候,有时我们须要对button做一些特殊的处理,比方button点击的时候会有一个动画的效果,实际上就是几张图片在短时间的切换.再比方有时候我们须要对界面的 ...

  4. 一步一步教你在 Android 里创建自己的账号系统(一)

    大家假设喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 大家在 ...

  5. 基于multiprocessing和threading实现非阻塞的GUI界面显示

    ========================================================= 环境:python2.7.pyqt4.eric16.11 热点:multiproce ...

  6. python3短信接口使用

    import http.client from urllib import parse host = "106.ihuyi.com" sms_send_uri = "/w ...

  7. JSP 随记

    jstl <c:forEach> 遍历,多个<option>时显示"全部".单个 option时,默认选中! 引入:<%@ taglib prefix ...

  8. SDP, RTP, RTCP, RTSP, RTMP 名词解释

    读维基百科里的词条,记录的一点笔记. SDP 会话描述协议 Session Description Protocol 严格来说 SDP 不是一种协议,而是一种格式约定,用于描述流媒体的参数.如协商媒体 ...

  9. 实例具体解释:反编译Android APK,改动字节码后再回编译成APK

    本文具体介绍了怎样反编译一个未被混淆过的Android APK,改动smali字节码后,再回编译成APK并更新签名,使之可正常安装.破译后的apk不管输入什么样的username和password都能 ...

  10. 2016/07/07 mymps(蚂蚁分类信息/地方门户系统)

    mymps(蚂蚁分类信息/地方门户系统)是一款基于php mysql的建站系统.为在各种服务器上架设分类信息以及地方门户网站提供完美的解决方案. mymps,整站生成静态,拥有世界一流的用户体验,卓越 ...