2900 views|4 replies

693

Posts

7

Resources
The OP
 

C language algorithm [Copy link]

  This post was last edited by bqgup on 2018-9-8 17:10
  1. /**************************************************************************************** *Project requirement: sum of 2 + 22 + 222 + 2222 + 22222 *Completion date: 01.13.2018 *Function author: bqgup *************************************************************************************/ #include<stdio.h>
  2. #include <math.h>
  3. typedef unsigned char u8; typedef unsigned int u16; u16 Same_Num(u8 value, u8 num) { u8 i; u16 sum = 0; for(i = 0; i &lt; num; i++) { sum += value * (u16)( pow(10,i)); } return sum; } u16 Same_Num_Sum(u8 value, u8 wei) { u8 n; u16 sum = 0; for(n = 0; n &lt; wei; n++) { sum += Same_Num(value,n+1); } return sum; } int main(void) { u8 a,b; printf ("Please enter some books to sum, for example:\n"); printf("2 + 22 + 222 + 2222 + 22222 (at this time n = 5)\n"); scanf("%d,%d",&amp;a,&amp;b); printf("I want to use %d as the base, and I want to add %d times:",a,b); printf("%d\n", Same_Num_Sum (a, b)); } /*********************end of file***************** **********/ /************************************** ************************************************** *Project Requirements :Classification of a line of character structures *Completion date: 01.13.2018 *Function author: bqgup ********************************* ************************************************** **/ #include<stdio.h>
  4. #include<math.h>
  5. typedef unsigned char u8;
  6. typedef unsigned int u16;
  7. typedef struct
  8. {
  9.         char Engliash;
  10.         char Null;
  11.         char Num;
  12.         char Else;
  13. }Add;
  14. Add add = {0,0,0,0};
  15. int main(void)
  16. {
  17.         char c;
  18.         while((c = getchar()) != '#')
  19.         {
  20.                 if((c &gt;= 'a' &amp;&amp; c &lt;= 'z') || (c &gt;= 'A' &amp;&amp; c &lt;= 'Z'))
  21.                 {
  22.                         add.Engliash++;
  23.                 }
  24.                 else if(c == ' ')
  25.                 {
  26.                         add.Null++;
  27.                 }
  28.                 else if(c &gt;= '0' &amp;&amp; c &lt;= '9')
  29.                 {
  30.                         add.Num++;
  31.                 }
  32.                 else
  33.                 {
  34.                         add.Else++;
  35.                 }
  36.                 printf("%c",c);
  37.                
  38.         }
  39.         printf("%4d%8d%12d%16d\n",add.Engliash,add.Null,add.Num,add.Else);
  40. }
  41. /*********************end of file***************************/
  42. /*************************************************************************************
  43. *项目需求:水仙花数
  44. *完成日期:01.13.2018
  45. *函数作者:bqgup
  46. *************************************************************************************/
  47. #include <stdio.h>
  48. #include<math.h>
  49. typedef unsigned char u8; typedef unsigned int u16; typedef enum { ge, shi, bai, }WEI; u8 Bits(WEI bbb,u16 num) { u8 value; switch(bbb) { case(ge): value = num % 10 ;break; case(shi):value = num % 100 /10;break; case(bai):value = num / 100;break; } return value; } int main(void) { u16 i; for(i = 100 ; i &lt; 1000;i++) { if(i == (u16)(pow(Bits(bai,i),3) + pow(Bits(shi,i),3) + pow(Bits(ge,i), 3))) { printf("%d\n",i); } } } /************************end of file***** ************************/ /******************************************************** ************************************ *Project requirements: Create a static linked list *Completion date: 01.14.2018 *Function author:bqgup ********************************************** ****************************************/ #include<stdio.h>
  50. typedef unsigned char u8; typedef unsigned int u16; typedef struct { int num; float score; struct Data * next; } Data; int main(void) { Data a,b,c,*head,*p; a.num = 10101; a.score = 89.5; b.num = 10103; b.score = 90; c.num = 10107; c.score = 85; head = &amp;a; a.next = &amp;b; b.next = &amp;c; c. next = NULL; p = head; do { printf("%ld %5.1f\n",p-&gt;num,p-&gt;score); p = p-&gt;next; }while(p != NULL); } /************************end of file****************************** **/ /******************************************************** ************************************ *Project requirement: Establish dynamic memory *Completion date: 01.14.2018 *Function author:bqgup ********************************************** ****************************************/ #include<stdio.h>
  51. #include <stdlib.h>
  52. typedef unsigned char u8; typedef unsigned int u16; void Check(int * p) { int i; printf("They are fail:"); for(i = 0; i &lt; 5; i++) { if(p &lt; 60) { printf("%d ",p);//Output unqualified results } } printf("\n"); } int main(void) { int * p1,i; p1 = (int *)malloc(20);//Open up 20 bytes of dynamic memory area, convert the address to int * type, and then put it in p1 for(i = 0; i &lt; 5; i++) { scanf("%d",&amp;p1); } Check(p1); return 0; } /*************************end of file*******************************/ /************************************************************************************* *Project requirement: Application of dynamic memory *Completion date: 01.14.2018 *Function author: bqgup **************************************************************************************/ #include<stdio.h>
  53. #include<stdlib.h>
  54. typedef unsigned char u8; typedef unsigned int u16; int main(void) { int *p1,i; p1 = (int *)malloc(6 * sizeof(int));//Type can be automatically convertedfor(i = 0; i &lt; 6; i++) { scanf("%d",p1 + i); } for(i = 0; i &lt; 6; i++) { if(*(p1 + i) &gt; 80) { printf("%d ",*(p1 + i)); } } } /*********************end of file***************************/ /********************************************************************************************* *Project requirement: Find the number of completions* Completion date: 02.04.2018 *Function author: bqgup **************************************************************************************/ #include<stdio.h>
  55. typedef unsigned char u8;
  56. typedef unsigned int u16;
  57. void Printf(void)
  58. {
  59. printf(" its factors are ");
  60. }
  61. int main(void)
  62. {
  63.         u16 i,j;
  64.         u16 sum = 0;
  65.         for(i = 2; i &lt;= 1000; i++)
  66.         {
  67.                 for(j = 1; j &lt;= 1000; j++)
  68.                 {
  69.                         if((i % j) == 0)
  70.                         {
  71.                                 if(j != i)                                //防止输出被除数
  72.                                 {
  73.                                         sum += j;
  74.                                 }
  75.                         }
  76.                 }
  77.                 if(sum == i)
  78.                 {
  79.                         printf("%d ",i);
  80.                        
  81.                         Printf();
  82.                         for(j = 1; j &lt;= 1000; j++)
  83.                         {
  84.                                 if((sum % j) == 0)
  85.                                 {
  86.                                        
  87.                                         if(sum != j)                                //防止输出被除数
  88.                                         {
  89.                                                 printf("%d ",j);
  90.                                         }
  91.                                 }
  92.                         }
  93.                         putchar('\n');
  94.                        
  95.                 }
  96.       
  97.                 sum = 0;                                          //sum清零,以便下次运算
  98.         }
  99. }
  100. /*********************end of file***************************/
  101. /*************************************************************************************
  102. *项目需求:分数系列前20项求和
  103. *完成日期:02.04.2018
  104. *函数作者:bqgup
  105. *************************************************************************************/
  106. #include <stdio.h>
  107. typedef unsigned char u8; typedef unsigned int u16; /************************************************************************************ *Function name: Fibonacci sequence number (recursive method) *Completion date: 02.04.2018 *Function author: bqgup **********************************************************************************/ u16 FBNQL(u8 n) { u16 sum; if(n == 1) { sum = 1; } else if(n == 2) { sum = 1; } else if(n &gt; 2) { sum = FBNQL(n - 1) + FBNQL(n - 2); } return sum; } void main(void) { u8 i;//Number of sums u16 a;//Denominator u16 b;//Numerator float sum = 0; for(i = 1; i &lt;= 20; i++) { b = FBNQL(2 + i);//Numerator a = FBNQL(1 + i);//Denominator sum += (float)(b) / (float)(a); } printf("%.2f\n",sum); } /*********************end of file*******************************/ /********************************************************************************************* *Project requirement: Sum the first 20 items of a fractional series *Completion date: 02.04.2018 *Function author: bqgup **************************************************************************************/ #include<stdio.h>
  108. typedef unsigned char u8; typedef unsigned int u16; int main(void) { u8 i = 1; float sum = 100; float high = 100; do { i++; sum = sum / 2; high += (sum * 2); }while(i &lt;= 10); printf("%f\n",sum); printf("%f\n",high); } /*********************end of file***************************/ /********************************************************************************************* *Project requirements: Team A and Team B grouping *Completion date: 02.04.2018 *Function author: bqgup **************************************************************************************/ #include<stdio.h>
  109. typedef unsigned char u8;
  110. typedef unsigned int u16;
  111. int main(void)
  112. {
  113.         char i,j;
  114.         for(i = 'A'; i &lt;= 'C'; i++)
  115.         {
  116.                 for(j = 'X';j &lt;= 'Z'; j++)
  117.                 {
  118.                         if(i == 'A')
  119.                         {
  120.                                 if(j == 'X')
  121.                                 {
  122.                                         continue;
  123.                                 }
  124.                         }
  125.                         if(i == 'C')
  126.                         {
  127.                                 if(j == 'X' || j == 'Z')
  128.                                 {
  129.                                         continue;
  130.                                 }
  131.                         }
  132.                         printf("%c-&gt;%c\n",i,j);
  133.                 }
  134.         }
  135. }
  136. /*********************end of file***************************/
  137. /*************************************************************************************
  138. *项目需求:冒泡法排序
  139. *完成日期:02.04.2018
  140. *函数作者:bqgup
  141. *************************************************************************************/
  142. #include <stdio.h>
  143. typedef unsigned char u8; typedef unsigned int u16; int main(void) { u8 i,j; u8 array[10]; u8 t; printf("Please Input ten numbers:"); for(i = 0; i &lt; 10 ; i++) { scanf("%d",&amp;array); } for(i = 0; i &lt; 9; i++) { for(j = 0; j &lt; 9 - i; j++) { if(array[j + 1 ] &lt; array[j]) { t = array[j + 1]; array[j + 1] = array[j]; array[j] = t; } } } for(i = 0; i &lt; 10; i++ ) { printf("%d ",array); } } /************************end of file****************** ****************/ /******************************************************** ************************************ *Project requirement: Interchange rows and columns of a two-dimensional array *Completion date: 02.05.2018 *Function author:bqgup ********************************************** **********************************************/ #include<stdio.h>
  144. typedef unsigned char u8; typedef unsigned int u16; int main(void) { u8 a[2][3] = {{1,2,3},{4,5,6}}; u8 b[3][2]; u8 i,j; for(i = 0; i &lt; 3; i++) { for(j = 0; j &lt; 2; j++) { b[j] = a[j]; printf("%d ",b[j]); if(j == 1) { putchar('\n'); } } } } /*********************end of file***************************/ /********************************************************************************************* *Project requirement: Find the maximum element in the matrix *Completion date: 02.05.2018 *Function author: bqgup **************************************************************************************/ #include<stdio.h>
  145. typedef unsigned char u8; typedef unsigned int u16; int main(void) { u8 a[][4] = {13,2,3,4,15,6,7,8,9,10,11,5}; u8 i,j,t = 0; u8 q,e; for(i = 0; i &lt; 3; i++) { for(j = 0; j &lt; 4; j++) { printf("%d ",a[j]); if(j == 3) { putchar('\n'); } if(t &lt; a[j]) { t = a[j]; q = i; e = j; } } } printf("The maximum value of the %dth row and %dth column is %d\n",q + 1,e + 1,t); } /*********************end of file***************************/ /************************************************************************************ *Project requirement: string connection *Completion date: 02.05.2018 *Function author: bqgup **************************************************************************************/ #include<stdio.h>
  146. #include <string.h>
  147. typedef unsigned char u8; typedef unsigned int u16; int main(void) { u8 str1[50] = "People's Republic of "; u8 str2[50] = "China"; puts(strcat(str1,str2)); } /*********************end of file*******************************/ /********************************************************************************************* *Project requirement: Find prime numbers* Completion date: 02.06.2018 *Function author: bqgup **************************************************************************************/ /************************************************************************************* Pseudocode analysis: 1. Let the number a be divided by i (the value of i changes from 2 to a - 1) 2. If a can be divided by 2~ (a - 1) If any integer is divisible by a, it means a is definitely not a prime number, and the loop is exited. At this time, i &lt; a **************************************************************************************/ #include<stdio.h>
  148. #include<string.h>
  149. typedef unsigned char u8; typedef unsigned int u16; int main(void) { u8 a; u8 i; printf("Please Input a num:"); scanf("%d",&amp;a); for(i = 2; i &lt;= a - 1; i++) { if(a % i == 0) { break; } } if(i &lt; a) { printf("no prime"); } else { printf("yes prime"); } putchar('\n'); } /*********************end of file***************************/ /********************************************************************************************* *Project requirement: Find prime numbers within 100 using screening method* Completion date: 02.06.2018 *Function author: bqgup **************************************************************************************/ #include<stdio.h>
  150. #include <string.h>
  151. typedef unsigned char u8; typedef unsigned int u16; int main(void) { u8 i,j; for(i = 2; i &lt;= 100; i++) { for(j = 2; j &lt;= i - 1; j++) { if(i % j == 0) { break; } } if(j &lt; i) { printf("%d no prime\n",i); } else { printf("%d yes prime\n",i); } } } /*********************end of file***************************/ /***************************************************************************************** *Project requirement: Sort 10 integers using the selection method *Completion date: 02.06.2018 *Function author: bqgup ******************************************************************************************/ #include<stdio.h>
  152. #include<string.h>
  153. typedef unsigned char u8; typedef unsigned int u16; int main(void) { u8 i,j; u8 a[10]; u8 t; for(i = 0; i &lt; 10; i++) { scanf("%d", &amp;a); } for(i = 0; i &lt; 9; i++) { for(j = 0; j &lt; 9 - i; j++) { if(a[i + 1] &lt; a) { t = a[i + 1]; a[i + 1] = a; a = t; } } } for(i = 0; i &lt; 10; i++) { printf("%d ",a); } } /************************end of file****************** ****************/ /************************************ *************************************************** * *Project requirements: Looking for a 3 X 3 The sum of the diagonal elements of an integer matrix *Completion date: 02.06.2018 *Function author: bqgup **************************** ************************************************** *******/ #include<stdio.h>
  154. #include<string.h>
  155. typedef unsigned char u8;
  156. typedef unsigned int u16;
  157. int main(void)
  158. {
  159.       
  160.         u8 i,j;
  161.         u8 a[3][3];
  162.         u8 sum = 0;
  163.         for(i = 0; i &lt; 3; i++)
  164.         {
  165.                 for(j = 0; j &lt; 3; j++)
  166.                 {
  167.                 scanf("%d",&amp;a[j]);
  168.                 }
  169.                
  170.         }
  171.         for(i = 0; i &lt; 3; i++)
  172.         {
  173.                 for(j = 0; j &lt; 3; j++)
  174.                 {
  175.                         printf("%d ",a[j]);
  176.                         if(j == 2)
  177.                         {
  178.                                 putchar('\n');
  179.                         }
  180.                 }
  181.                
  182.         }
  183.         for(i = 0; i &lt; 3; i++)
  184.         {
  185.                 for(j = 0; j &lt; 3; j++)
  186.                 {
  187.                        
  188.                         if(j == i)
  189.                         {
  190.                                 sum += a[j];
  191.                         }
  192.                 }
  193.                
  194.         }
  195.         printf("%d\n",sum);
  196.       
  197. }
  198. /*********************end of file***************************/
  199. /*************************************************************************************
  200. *项目需求:按照原排序规律将一个数插入数组中
  201. *完成日期:02.07.2018
  202. *函数作者:bqgup
  203. *************************************************************************************/
  204. #include <stdio.h>
  205. #include <string.h>
  206. typedef unsigned char u8; typedef unsigned int u16; int main(void) { u8 i,j; u8 a[5] = {1,4,8,9,16}; u8 b; u8 sum = 0; scanf("%d",&amp;sum); for(i = 0; i &lt; 5; i++) { if(sum &gt;= a &amp;&amp; sum &lt;= a[i + 1]) { b = i; break; } } a = sum; for(i = 0; i &lt; 5; i++) { printf("%d ",a); } } /*************************end of file***************************/ /************************************************************************************* *Project requirement: Array is stored in reverse order *Completion date: 02.07.2018 *Function author: bqgup *************************************************************************************/ #include<stdio.h>
  207. #include<string.h>
  208. typedef unsigned char u8; typedef unsigned int u16; int main(void) { u8 i,j; u8 a[5]; for(i = 0; i &lt; 5; i++) { scanf("%d",&amp;a); } for(i = 0; i &lt; 5; i++) { printf("%d ",a); } putchar('\n'); for(i = 0; i &lt; 5; i++) { printf("%d ",a[4 - i]); } putchar('\n'); } /*********************end of file***************************/ /***************************************************************************************** *Project requirement: 10 X 10 Pascal's triangle *Completion date: 02.14.2018 *Function author: bqgup *************************************************************************************/ #include<stdio.h>
  209. #include<string.h>
  210. typedef unsigned char u8;
  211. typedef unsigned int u16;
  212. int main(void)
  213. {
  214.       
  215.         u8 i,j;
  216.         u8 a[10][10];
  217.         for(i = 0; i &lt; 10; i++)
  218.         {
  219.                 for(j = 0; j &lt; 10; j++)
  220.                 {
  221.                         if(j == i)
  222.                         {
  223.                                 a[j] = 1;
  224.                         }
  225.                         if(j == 0)
  226.                         {
  227.                                 a[j] = 1;
  228.                         }
  229.                         if(j != i &amp;&amp; j != 0)
  230.                         {
  231.                                 a[j] = a[i - 1][j] + a[i - 1][j - 1];
  232.                         }
  233.                
  234.                 }
  235.         }
  236.         for(i = 0; i &lt; 10; i++)
  237.         {
  238.                 for(j = 0; j &lt;= i; j++)
  239.                 {
  240.                         printf("%d  ",a[j]);
  241.                         if(j == i)
  242.                         {
  243.                                 putchar('\n');
  244.                        
  245.                         }
  246.                 }
  247.         }
  248. }
  249. /*********************end of file***************************/
  250. /*************************************************************************************
  251. *项目需求:删除字符串中任意一个字符
  252. *完成日期:02.16.2018
  253. *函数作者:bqgup
  254. *************************************************************************************/
  255. #include <stdio.h>
  256. #include <string.h>
  257. : #define CHARACTER ' ' typedef unsigned char u8; typedef unsigned int u16; u8 str[80]; u8 i,j; int main(void) { gets(str); for(i = j = 0; str != '\0'; i++) { if(str != CHARACTER) { str[j++] = str; } } str[j] = '\0'; printf("%s\n",str); } /*********************end of file***************************/ /***************************************************************************************** *Project requirement: Concatenate two strings without strcat (normal version) *Completion date: 02.16.2018 *Function author: bqgup **************************************************************************************/ #include<stdio.h>
  258. #include<string.h>
  259. typedef unsigned char u8; typedef unsigned int u16; u8 str[80]; u8 str1[] = "I love you "; u8 str2[] = "BQG !!!!!"; u8 i,j; int main(void) { for(i = 0; i &lt; sizeof(str1); i++) { str = str1; } for(j = 0; j &lt; sizeof(str2); j++) { str[sizeof(str1) + j - 1] = str2[j]; } printf("%s\n",str); } /*************************end of file***************************/ /************************************************************************************* *Project requirement: Do not use strcat to concatenate two strings (encapsulated version) *Completion date: 02.16.2018 *Function author: (from the Internet) *************************************************************************************/ #include<stdio.h>
  260. #include<string.h>
  261. typedef unsigned char u8;
  262. typedef unsigned int u16;
  263. u8 str[80];
  264. u8 str1[] = "I love you ";
  265. u8 str2[] = "B Q G !!!!!";
  266. u8 i,j;
  267. int main(void)
  268. {
  269.                 while(str1 != '\0')
  270.                 {
  271.                         i++;
  272.                 }
  273.                 while(str2[j] != '\0')
  274.                 {
  275.                         str1[i++] = str2[j++];
  276.                 }
  277.                 str1 = '\0';
  278.                 printf("%s\n",str1);
  279. }
  280. /*********************end of file***************************/
复制代码

This post is from Innovation Lab

Latest reply

The reading experience is very bad. It would be much better to use the method of inserting code blocks#include<stdio.h>#include ......int main(void){}复制代码  Details Published on 2018-9-8 10:53
 
 

1903

Posts

0

Resources
2
 
Big cow, that's annoying
This post is from Innovation Lab
 
 
 

21

Posts

0

Resources
3
 
The reading experience is very bad. It would be much better to use the method of inserting code blocks
  1. #include<stdio.h>
  2. #include ...
  3. ...
  4. int main(void)
  5. {
  6. }
复制代码
This post is from Innovation Lab

Comments

Thanks, I learned  Details Published on 2018-9-8 17:08
 
 
 

693

Posts

7

Resources
4
 
hkyao01098 posted on 2018-9-8 10:53 The reading experience is very poor. It would be much better to use the method of inserting code blocks
Thank you, I have learned something
This post is from Innovation Lab

Comments

Thank you for your advice  Details Published on 2018-9-8 17:11
 
 
 

693

Posts

7

Resources
5
 
bqgup posted on 2018-9-8 17:08 Thank you, I learned a lot
Thank you for your advice
This post is from Innovation Lab
 
 
 

Just looking around
Find a datasheet?

EEWorld Datasheet Technical Support

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号
快速回复 返回顶部 Return list