c语言检测HDMI热插拔,c语言算法 - 创新实验室 - 电子工程世界-论坛

/*************************************************************************************

*项目需求:求和形如2 + 22 + 222 + 2222 + 22222

*完成日期:01.13.2018

*函数作者:bqgup

*************************************************************************************/

#include

#include

typedef unsigned char u8;

typedef unsigned int u16;

u16 Same_Num(u8 value, u8 num)

{

u8 i;

u16 sum = 0;

for(i = 0; i < 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 < wei; n++)

{

sum += Same_Num(value,n+1);

}

return sum;

}

int main(void)

{

u8 a,b;

printf("请输入一些书求和,例如:\n");

printf("2 + 22 + 222 + 2222 + 22222   (此时n = 5)\n");

scanf("%d,%d",&a,&b);

printf("我想以 %d 为基准,我想加 %d 次:",a,b);

printf("%d\n", Same_Num_Sum(a, b));

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:一行字符结构分类

*完成日期:01.13.2018

*函数作者:bqgup

*************************************************************************************/

#include

#include

typedef unsigned char u8;

typedef unsigned int u16;

typedef struct

{

char Engliash;

char Null;

char Num;

char Else;

}Add;

Add add = {0,0,0,0};

int main(void)

{

char c;

while((c = getchar()) != '#')

{

if((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))

{

add.Engliash++;

}

else if(c == ' ')

{

add.Null++;

}

else if(c >= '0' && c <= '9')

{

add.Num++;

}

else

{

add.Else++;

}

printf("%c",c);

}

printf("%4d%8d%12d%16d\n",add.Engliash,add.Null,add.Num,add.Else);

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:水仙花数

*完成日期:01.13.2018

*函数作者:bqgup

*************************************************************************************/

#include

#include

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 < 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***************************/

/*************************************************************************************

*项目需求:建立静态链表

*完成日期:01.14.2018

*函数作者:bqgup

*************************************************************************************/

#include

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 = &a;

a.next = &b;

b.next = &c;

c.next = NULL;

p = head;

do

{

printf("%ld %5.1f\n",p->num,p->score);

p = p->next;

}while(p != NULL);

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:建立动态内存

*完成日期:01.14.2018

*函数作者:bqgup

*************************************************************************************/

#include

#include

typedef unsigned char u8;

typedef unsigned int u16;

void Check(int * p)

{

int i;

printf("They are fail:");

for(i = 0; i < 5; i++)

{

if(p < 60)

{

printf("%d ",p);//输出不合格的成绩

}

}

printf("\n");

}

int main(void)

{

int * p1,i;

p1 = (int *)malloc(20);//开辟20个字节动态内存区,将地址转换成int *型,然后放在p1中

for(i = 0; i < 5; i++)

{

scanf("%d",&p1);

}

Check(p1);

return 0;

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:动态内存的应用

*完成日期:01.14.2018

*函数作者:bqgup

*************************************************************************************/

#include

#include

typedef unsigned char u8;

typedef unsigned int u16;

int main(void)

{

int *p1,i;

p1 = (int *)malloc(6 * sizeof(int));//类型可以自动转换

for(i = 0; i < 6; i++)

{

scanf("%d",p1 + i);

}

for(i = 0; i < 6; i++)

{

if(*(p1 + i) > 80)

{

printf("%d ",*(p1 + i));

}

}

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:求完数

*完成日期:02.04.2018

*函数作者:bqgup

*************************************************************************************/

#include

typedef unsigned char u8;

typedef unsigned int u16;

void Printf(void)

{

printf(" its factors are ");

}

int main(void)

{

u16 i,j;

u16 sum = 0;

for(i = 2; i <= 1000; i++)

{

for(j = 1; j <= 1000; j++)

{

if((i % j) == 0)

{

if(j != i)                                //防止输出被除数

{

sum += j;

}

}

}

if(sum == i)

{

printf("%d ",i);

Printf();

for(j = 1; j <= 1000; j++)

{

if((sum % j) == 0)

{

if(sum != j)                                //防止输出被除数

{

printf("%d ",j);

}

}

}

putchar('\n');

}

sum = 0;                                          //sum清零,以便下次运算

}

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:分数系列前20项求和

*完成日期:02.04.2018

*函数作者:bqgup

*************************************************************************************/

#include

typedef unsigned char u8;

typedef unsigned int u16;

/*************************************************************************************

*函数名称:斐波那契列数(递归方法)

*完成日期:02.04.2018

*函数作者:bqgup

*************************************************************************************/

u16 FBNQL(u8 n)

{

u16 sum;

if(n == 1)

{

sum = 1;

}

else if(n == 2)

{

sum = 1;

}

else if(n > 2)

{

sum = FBNQL(n - 1) + FBNQL(n - 2);

}

return sum;

}

void main(void)

{

u8 i;//求和的个数

u16 a;//分母

u16 b;//分子

float sum = 0;

for(i = 1; i <= 20; i++)

{

b = FBNQL(2 + i);//分子

a = FBNQL(1 + i);//分母

sum += (float)(b) / (float)(a);

}

printf("%.2f\n",sum);

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:分数系列前20项求和

*完成日期:02.04.2018

*函数作者:bqgup

*************************************************************************************/

#include

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 <= 10);

printf("%f\n",sum);

printf("%f\n",high);

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:甲乙队分组

*完成日期:02.04.2018

*函数作者:bqgup

*************************************************************************************/

#include

typedef unsigned char u8;

typedef unsigned int u16;

int main(void)

{

char i,j;

for(i = 'A'; i <= 'C'; i++)

{

for(j = 'X';j <= 'Z'; j++)

{

if(i == 'A')

{

if(j == 'X')

{

continue;

}

}

if(i == 'C')

{

if(j == 'X' || j == 'Z')

{

continue;

}

}

printf("%c->%c\n",i,j);

}

}

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:冒泡法排序

*完成日期:02.04.2018

*函数作者:bqgup

*************************************************************************************/

#include

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 < 10; i++)

{

scanf("%d",&array);

}

for(i = 0; i < 9; i++)

{

for(j = 0; j < 9 - i; j++)

{

if(array[j + 1] < array[j])

{

t = array[j + 1];

array[j + 1] = array[j];

array[j] = t;

}

}

}

for(i = 0; i < 10; i++)

{

printf("%d ",array);

}

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:二维数组行列互换

*完成日期:02.05.2018

*函数作者:bqgup

*************************************************************************************/

#include

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 < 3; i++)

{

for(j = 0; j < 2; j++)

{

b[j] = a[j];

printf("%d ",b[j]);

if(j == 1)

{

putchar('\n');

}

}

}

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:求矩阵中最大元素

*完成日期:02.05.2018

*函数作者:bqgup

*************************************************************************************/

#include

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 < 3; i++)

{

for(j = 0; j < 4; j++)

{

printf("%d ",a[j]);

if(j == 3)

{

putchar('\n');

}

if(t < a[j])

{

t = a[j];

q = i;

e = j;

}

}

}

printf("第%d行第%d列的数值最大为%d\n",q + 1,e + 1,t);

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:字符串连接

*完成日期:02.05.2018

*函数作者:bqgup

*************************************************************************************/

#include

#include

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***************************/

/*************************************************************************************

*项目需求:求素数

*完成日期:02.06.2018

*函数作者:bqgup

*************************************************************************************/

/*************************************************************************************

伪代码分析:

1、让此数a被i除(i的值从2变到a - 1)

2、如果a能被2~(a - 1)之中任何一个整数整除,则表示a肯定不是素数,跳出循环,此时i < a

**************************************************************************************/

#include

#include

typedef unsigned char u8;

typedef unsigned int u16;

int main(void)

{

u8 a;

u8 i;

printf("Please Input a num:");

scanf("%d",&a);

for(i = 2; i <= a - 1; i++)

{

if(a % i == 0)

{

break;

}

}

if(i < a)

{

printf("no prime");

}

else

{

printf("yes prime");

}

putchar('\n');

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:用筛选法求100之内的素数

*完成日期:02.06.2018

*函数作者:bqgup

*************************************************************************************/

#include

#include

typedef unsigned char u8;

typedef unsigned int u16;

int main(void)

{

u8 i,j;

for(i = 2; i <= 100; i++)

{

for(j = 2; j <= i - 1; j++)

{

if(i % j == 0)

{

break;

}

}

if(j < i)

{

printf("%d no prime\n",i);

}

else

{

printf("%d yes prime\n",i);

}

}

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:用选择法对10个整数排序

*完成日期:02.06.2018

*函数作者:bqgup

*************************************************************************************/

#include

#include

typedef unsigned char u8;

typedef unsigned int u16;

int main(void)

{

u8 i,j;

u8 a[10];

u8 t;

for(i = 0; i < 10; i++)

{

scanf("%d",&a);

}

for(i = 0; i < 9; i++)

{

for(j = 0; j < 9 - i; j++)

{

if(a[i + 1] < a)

{

t = a[i + 1];

a[i + 1] = a;

a = t;

}

}

}

for(i = 0; i < 10; i++)

{

printf("%d ",a);

}

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:求一个3 X 3 的整型矩阵对角线元素之和

*完成日期:02.06.2018

*函数作者:bqgup

*************************************************************************************/

#include

#include

typedef unsigned char u8;

typedef unsigned int u16;

int main(void)

{

u8 i,j;

u8 a[3][3];

u8 sum = 0;

for(i = 0; i < 3; i++)

{

for(j = 0; j < 3; j++)

{

scanf("%d",&a[j]);

}

}

for(i = 0; i < 3; i++)

{

for(j = 0; j < 3; j++)

{

printf("%d ",a[j]);

if(j == 2)

{

putchar('\n');

}

}

}

for(i = 0; i < 3; i++)

{

for(j = 0; j < 3; j++)

{

if(j == i)

{

sum += a[j];

}

}

}

printf("%d\n",sum);

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:按照原排序规律将一个数插入数组中

*完成日期:02.07.2018

*函数作者:bqgup

*************************************************************************************/

#include

#include

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",&sum);

for(i = 0; i < 5; i++)

{

if(sum >= a && sum <= a[i + 1])

{

b = i;

break;

}

}

a = sum;

for(i = 0; i < 5; i++)

{

printf("%d ",a);

}

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:数组逆序重新存放

*完成日期:02.07.2018

*函数作者:bqgup

*************************************************************************************/

#include

#include

typedef unsigned char u8;

typedef unsigned int u16;

int main(void)

{

u8 i,j;

u8 a[5];

for(i = 0; i < 5; i++)

{

scanf("%d",&a);

}

for(i = 0; i < 5; i++)

{

printf("%d ",a);

}

putchar('\n');

for(i = 0; i < 5; i++)

{

printf("%d ",a[4 - i]);

}

putchar('\n');

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:10 X 10杨辉三角

*完成日期:02.14.2018

*函数作者:bqgup

*************************************************************************************/

#include

#include

typedef unsigned char u8;

typedef unsigned int u16;

int main(void)

{

u8 i,j;

u8 a[10][10];

for(i = 0; i < 10; i++)

{

for(j = 0; j < 10; j++)

{

if(j == i)

{

a[j] = 1;

}

if(j == 0)

{

a[j] = 1;

}

if(j != i && j != 0)

{

a[j] = a[i - 1][j] + a[i - 1][j - 1];

}

}

}

for(i = 0; i < 10; i++)

{

for(j = 0; j <= i; j++)

{

printf("%d  ",a[j]);

if(j == i)

{

putchar('\n');

}

}

}

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:删除字符串中任意一个字符

*完成日期:02.16.2018

*函数作者:bqgup

*************************************************************************************/

#include

#include

#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***************************/

/*************************************************************************************

*项目需求:不用strcat连接两个字符串(普通版)

*完成日期:02.16.2018

*函数作者:bqgup

*************************************************************************************/

#include

#include

typedef unsigned char u8;

typedef unsigned int u16;

u8 str[80];

u8 str1[] = "I love you ";

u8 str2[] = "B Q G !!!!!";

u8 i,j;

int main(void)

{

for(i = 0; i < sizeof(str1); i++)

{

str = str1;

}

for(j = 0; j < sizeof(str2); j++)

{

str[sizeof(str1) + j - 1] = str2[j];

}

printf("%s\n",str);

}

/*********************end of file***************************/

/*************************************************************************************

*项目需求:不用strcat连接两个字符串(封装版)

*完成日期:02.16.2018

*函数作者:(来源于网上)

*************************************************************************************/

#include

#include

typedef unsigned char u8;

typedef unsigned int u16;

u8 str[80];

u8 str1[] = "I love you ";

u8 str2[] = "B Q G !!!!!";

u8 i,j;

int main(void)

{

while(str1 != '\0')

{

i++;

}

while(str2[j] != '\0')

{

str1[i++] = str2[j++];

}

str1 = '\0';

printf("%s\n",str1);

}

/*********************end of file***************************/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值