1. 打印九九乘法表
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int main()
  5. {
  6. int i = , j = ;
  7. for (i = ; i <= ; i++)
  8. {
  9. for (j = ; j <= ; j++)
  10. {
  11. printf("%d * %d = %d \n", i, j, i * j);
  12. }
  13.  
  14. }
  15. system("pause");
  16. return ;
  17. }

2.打印如下图形

(1)

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int main()
  5. {
  6. int i = , j = , k = , m = ;
  7. for (i = ; i <= ; i++)
  8. {
  9. for (j = ; j <= ; j++)
  10. {
  11. if (j < )
  12. {
  13. if (j / k == )
  14. printf(" ");
  15. else printf("*");
  16. }
  17. if (j == )printf("*");
  18. if (j >= )
  19. {
  20. if (j / m == )
  21. printf("*");
  22. else printf(" ");
  23. }
  24.  
  25. }
  26. if (i < && k > )
  27. {
  28. k--;
  29. m++;
  30. }
  31. if (i >= )
  32. {
  33. k++;
  34. m--;
  35. }
  36. printf("\n");
  37. }
  38.  
  39. system("pause");
  40. return ;
  41. }

(2)

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int main()
  5. {
  6. int i = , j = , k = , m = ;
  7. for (i = ; i <= ; i++)
  8. {
  9. for (j = ; j <= ; j++)
  10. {
  11. if (j < )
  12. {
  13. if (j ==k)
  14. printf("*");
  15. else printf(" ");
  16. }
  17. //if (j == 5)printf("*");
  18. if (j >= )
  19. {
  20. if (j ==m)
  21. printf("*");
  22. else printf(" ");
  23. }
  24.  
  25. }
  26. if (i < && k > )
  27. {
  28. k--;
  29. m++;
  30. }
  31. if (i >= )
  32. {
  33. k++;
  34. m--;
  35. }
  36. printf("\n");
  37. }
  38. system("pause");
  39. return ;
  40. }

(3)

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int main()
  5. {
  6. int i = , j = , tmp1 = , tmp2 = ;
  7.  
  8. for (i = ; i < ; i++)
  9. {
  10. if (i == )
  11. printf("\n");
  12.  
  13. else
  14. {
  15. for (j = ; j > i; j--)
  16. {
  17. printf(" ");
  18. }
  19. for (int m = ; m <= j; m++)
  20. {
  21. printf("* ");
  22. }
  23. for (int k = ; k >i; k--)
  24. {
  25. printf(" ");
  26. }
  27. for (int m = ; m <= j; m++)
  28. {
  29. printf("* ");
  30. }
  31. printf("\n");
  32. }
  33.  
  34. }
  35.  
  36. for (int i = ; i<; i++)
  37. {
  38. for (int m = ; m < i; m++)
  39. {
  40. printf(" ");//先打印空格
  41. }
  42. for (int j = i; j<; j++)
  43. {
  44.  
  45. printf("* ");
  46. }
  47. printf("\n");
  48.  
  49. }
  50.  
  51. system("pause");
  52. return ;
  53. }

3

(1)求两个有序数组的公共元素

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. //求两个有序数组的公共元素
  4.  
  5. int main()
  6. {
  7. int a[] = { ,,,, }, b[] = { ,,,, };
  8. int ret[],cnt=;
  9. for (int i = ; i < ; i++)
  10. {
  11. for (int j = ; j < ; j++)
  12. {
  13. if (a[i] == b[j])ret[cnt ++ ] = b[j];
  14. else continue;
  15. }
  16. }
  17. for (int i = ; i < cnt; i++)printf("%d ", ret[i]);
  18. printf("\n");
  19. system("pause");
  20. return ;
  21. }

(2) 求三个有序数组的公共元素。

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. //求三个有序数组的公共元素
  4. #define A 5
  5. #define B 5
  6. #define C 5
  7. int main()
  8. {
  9. int a[A] = { ,,,, }, b[B] = { ,,,, }, c[C] = { ,,,, };
  10. int ret[], cnt = ;
  11. for (int i = ; i < ; i++)
  12. {
  13. for (int j = ; j < ; j++)
  14. {
  15. for (int k = ; k < ; k++)
  16. {
  17. if (a[i] == b[j] && b[j] == c[k])
  18. {
  19. ret[cnt++] = c[k];
  20. }
  21. else continue;
  22. }
  23.  
  24. }
  25. }
  26. for (int i = ; i < cnt; i++)printf("%d ", ret[i]);
  27. printf("\n");
  28. system("pause");
  29. return ;
  30. }

(2) 求n个有序数组的公共元素。

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. //求N个有序数组的公共元素
  4. #define A 5
  5. #define N 3
  6. int main()
  7. {
  8. int a[N][A] = { ,,,,, ,,,, , ,,,, };
  9. int ret[], cnt = ;
  10. for (int i = ; i < ; i++)
  11. {
  12. for (int j = ; j < ; j++)
  13. {
  14. for (int k = ; k < ; k++)
  15. {
  16. if (a[][i] == a[][j] && a[][j] == a[][k])
  17. {
  18. ret[cnt++] = a[][k];
  19. }
  20. else continue;
  21. }
  22.  
  23. }
  24. }
  25. for (int i = ; i < cnt; i++)printf("%d ", ret[i]);
  26. printf("\n");
  27. system("pause");
  28. return ;
  29. }

4.求数组的最大值和次大值。

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. //求数组的最大值和次大值
  4. #define A 11
  5. #define max(a, b) (a) > (b)? (a) : (b)
  6. int *fun(int *a)
  7. {
  8. int ret[],j=;
  9. for (int i = ; i < a; i++)
  10. {
  11. ret[j%] = max(ret[j % ], a[i]);
  12. j++;
  13. }
  14. printf("%d %d", ret[], ret[]);
  15. return ret;
  16. }
  17. int main()
  18. {
  19. int a[A] = { ,,,,,,,,,, };
  20. fun(a);
  21. printf("\n");
  22. system("pause");
  23. return ;
  24. }

5.给定一个n个整型元素的数组a,其中有一个元素出现次数超过n / 2,求这个元素。

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define n 10
  4.  
  5. int fun(int *a,int cnt)
  6. {
  7. int curValue = a[];
  8.  
  9. for (int i = ; i < n; i++)
  10. {
  11. if (a[i] == curValue)cnt++;
  12. else
  13. {
  14. cnt--;
  15. if (cnt < )
  16. {
  17. curValue = a[i];
  18. cnt = ;
  19. }
  20. }
  21. }
  22.  
  23. return curValue;
  24. }
  25. int main()
  26. {
  27. int a[n] = { ,,,,,,,,, };
  28. int i = ,cnt=;
  29. int ret = {};
  30. ret = fun(a,cnt);
  31. //while (ret[i] == ret[i+1])cnt++;
  32. printf("这个数是%d", ret);
  33. printf("\n");
  34. system("pause");
  35. return ;
  36. }

6.给定一个含有n个元素的整型数组,找出数组中的两个元素x和y使得abs(x - y)值最小

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4. #define n 10
  5.  
  6. int main()
  7. {
  8. int a[n] = { ,-,,,,,,,, };
  9. int i = , j = , ret[] = { a[]-a[], }, loc[];
  10. for (i = ; i < n; i++)
  11. {
  12. for (j = i+; j < n; j++)
  13. {
  14. ret[] = abs(a[i] - a[j]);
  15. printf("%d\n", ret[]);
  16. if (ret[] == )
  17. {
  18. loc[] = a[i];
  19. loc[] = a[j];
  20. i = n;
  21. j = n;
  22. break;
  23. }
  24. if (ret[] > ret[])
  25. {
  26. ret[] = ret[];
  27. loc[] = a[i];
  28. loc[] = a[j];
  29. }
  30. else
  31. {
  32. continue;
  33. }
  34. }
  35.  
  36. }
  37. printf("%d %d", loc[], loc[]);
  38. printf("\n");
  39. system("pause");
  40. return ;
  41. }

8. 给定含有1001个元素的数组,其中存放了1-1000之内的整数,只有一个整数是重复的,请找出这个数

A1 + … + A1001 – (1 + …+ 1000)

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define N 1001
  4. int main()
  5. {
  6. int a[N],sum=,suma= ,ret=;
  7. for (int i =; i < ; i++)
  8. {
  9. a[i] = i+;
  10. }
  11. a[] = ;
  12. for (int i = ; i < ; i++)
  13. {
  14. sum += i;
  15.  
  16. }
  17. for (int i = ; i < ; i++)
  18. {
  19. suma += a[i];
  20.  
  21. }
  22. ret = suma - sum;
  23. printf("%d", ret);
  24. printf("\n");
  25. system("pause");
  26. return ;
  27. }

算法实现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. 转帖:HttpStatusCode状态说明C#版

    Continue 等效于 HTTP 状态 100.Continue 指示客户端可能继续其请求. SwitchingProtocols 等效于 HTTP 状态 101.SwitchingProtocol ...

  2. 如何使用电骡eMule上传资源

    1 在电脑中创建一个文件夹专门为上传资源使用 在里面放入任意文件并右击显示ED2K链接   链接效果如下 2 登陆verycd网站,并点击上传资源 复制ED2K地址并选择分类  

  3. Android--绑定服务调用服务的方法

    Service依照其启动的方式,可分为两种: 1.Started Started的Service.通过在Application里用startService(Intent intent)方法来启动.这样 ...

  4. android 5.X Toolbar+DrawerLayout实现抽屉菜单

    前言  android5.X新增的一个控件Toolbar,这个控件比ActionBar更加自由,可控,因为曾经的ActionBar的灵活性比較差,所以google逐渐使用Toolbar替代Action ...

  5. vs2012编译ffmpeg

    从官方网站down下来的ffmpeg没有pdb文件不方便调试,为此使用VS2012编译ffmpeg. 编译步骤: 一.安装MinGW,具体的安装方法上一篇文章已经有介绍这里不在赘述. 二.下载文件并放 ...

  6. Python中cv2库和matplotlib库色彩空间排布不一致

    今天在python中读如图片时发现以下问题: 1.在from matplotlib import pyplot as plt之后,再import cv2 cv2.imshow()不能正常使用,还不知道 ...

  7. 为公司做crm资产管理

    一.实现会议室预定 二.实现调查问卷 三.项目背景初始化分析 四.简单的登陆注册 五.学生管理 六.老师管理 七.销售管理 八.客户关系管理 九.抢单管理 十.微信发消息发邮件管理 补充:数据表设计. ...

  8. js实现网页端复制功能

    实现网页端复制功能: <div id="copyInput" style="display:none;"> <form> <inp ...

  9. PHP框架的基本原理以及选择标准

    PHP框架的原理 说到PHP框架,可能很多PHP新手会感到有些胆怯.其实,PHP框架也不是那么深不可测的,框架就是别人使用PHP基础只是为你写好了的东西,只是封装在一起:这就好比我们使用PHP的函数, ...

  10. eclipse的debug使用(转载)

    出处:http://www.blogjava.net/yxhxj2006/archive/2012/08/30/386621.html 远程Debug: http://blog.sina.com.cn ...