当前位置:首页 » 编程语言 » 算法c语言实现

算法c语言实现

发布时间: 2022-01-15 14:54:14

❶ 关于算法编程题(c语言实现)

char *a; //字符串 改为 char a[20];//存放字符串的字符数组
int jie; //方程的解 改为 double jie;
dy = 0; 删去 dy=0;
两处的 for(i=1;i<=z;i++) 都改为 for(i = 0; i < z; i++)
if (a[i] == '==' ) 改为 if (a[i] == '=' )
{z=i; 改为 {dy = i;
a=0;b=0; 删去 a=0;b=0;
fun(a,1,dy,&b,&c); 改为 fun(a, 0, dy - 1, &b, &c);
fun(a,dy,z,&b,&c); 改为 fun(a, dy + 1, z - 1, &b, &c);
jie=(d-b)/(e-c); 改为 jie=((double)(d-b))/(e-c);
printf("%c = %d",zm,jie); 改为 printf("%c = %f",zm,jie);

❷ c语言编写程序 实现一个算法

#include<iostream>
usingnamespacestd;
typedefstructNode
{
structNode*rChild;
structNode*lChild;
}Node;
boolisTheSame(Node*treeA,Node*treeB)
{
if(treeA==NULL||treeB==NULL)
returntreeA==treeB;
returnisTheSame(treeA->lChild,treeB->lChild)
&&isTheSame(treeA->rChild,treeB->rChild);
}
intmain()
{
Node*A=aNewTree();
Node*B=anotherNewTree();

if(isTheSame(A,B))
cout<<"A,B两树等价"<<endl;
else
cout<<"A,B两树不等价"<<endl;

return0;
}

isTheSame就是判断两树是否等价的函数,aNewTree和anotherNewTree是生成两个树的函数,这里我没有具体实现,你根据具体实现改吧

❸ 做一个RSA的算法,C语言实现的~!编程高手进啊~!救命啊~!

看你催就仓促写了个,自我感觉写的不是很好,但是能用了。数据只能是大写字母组成的字符串。
加密的时候,输入Y,然后输入要加密的文本(大写字母)
解密的时候,输入N,然后输入一个整数n表示密文的个数,然后n个整数表示加密时候得到的密文。
/*RSA
algorithm
*/
#include
<stdio.h>
#include
<string.h>
#include
<stdlib.h>
#define
MM
7081
#define
KK
1789
#define
PHIM
6912
#define
PP
85
typedef
char
strtype[10000];
int
len;
long
nume[10000];
int
change[126];
char
antichange[37];
void
initialize()
{
int
i;
char
c;
for
(i
=
11,
c
=
'A';
c
<=
'Z';
c
++,
i
++)
{
change[c]
=
i;
antichange[i]
=
c;
}
}
void
changetonum(strtype
str)
{
int
l
=
strlen(str),
i;
len
=
0;
memset(nume,
0,
sizeof(nume));
for
(i
=
0;
i
<
l;
i
++)
{
nume[len]
=
nume[len]
*
100
+
change[str[i]];
if
(i
%
2
==
1)
len
++;
}
if
(i
%
2
!=
0)
len
++;
}
long
binamod(long
numb,
long
k)
{
if
(k
==
0)
return
1;
long
curr
=
binamod
(numb,
k
/
2);
if
(k
%
2
==
0)
return
curr
*
curr
%
MM;
else
return
(curr
*
curr)
%
MM
*
numb
%
MM;
}
long
encode(long
numb)
{
return
binamod(numb,
KK);
}
long
decode(long
numb)
{
return
binamod(numb,
PP);
}
main()
{
strtype
str;
int
i,
a1,
a2;
long
curr;
initialize();
puts("Input
'Y'
if
encoding,
otherwise
input
'N':");
gets(str);
if
(str[0]
==
'Y')
{
gets(str);
changetonum(str);
printf("encoded:
");
for
(i
=
0;
i
<
len;
i
++)
{
if
(i)
putchar('-');
printf("
%ld
",
encode(nume[i]));
}
putchar('\n');
}
else
{
scanf("%d",
&len);
for
(i
=
0;
i
<
len;
i
++)
{
scanf("%ld",
&curr);
curr
=
decode(curr);
a1
=
curr
/
100;
a2
=
curr
%
100;
printf("decoded:
");
if
(a1
!=
0)
putchar(antichange[a1]);
if
(a2
!=
0)
putchar(antichange[a2]);
}
putchar('\n');
}
putchar('\n');
system("PAUSE");
return
0;
}
测试:
输入:
Y
FERMAT
输出:
encoded:
5192
-
2604
-
4222
输入
N
3
5192
2604
4222
输出
decoded:
FERMAT

❹ 用c语言编写一算法

单链表建一个表头,指向第一个node,建一个表尾,next域指向NULL。每次新建node,把数据顺序填入,每次一个,然后从表头到表尾开始查找链表数据作比较,找到前面的一个小、后面一个大的位置,小的next指向这个新的node,新node的next指向大的node。如果都比新的大,就加入表头node,如果都比新的小,就加入表尾node。数据填完结束。

❺ 算法编程:用c语言实现

解决这类问题可以使用 回溯 算法,代码如下:

#include<stdio.h>
#include<stdlib.h>

#defineM6//候选数字个数
#defineN5//组合后数字位数

intcheck(intresult[],inti)
{
for(intj=0;j<N;j++)
if(result[j]==i)
return0;

return1;
}

intlist(intnumbers[],intl,intresult[],intcount)
{
if(l>=N){

//将各位数组合成一个数
intnum=0;
for(inti=0;i<N;i++){
num=num*10+numbers[result[i]];
}

//判断这个数是否能被75整除
if(num%75==0){
printf("%d ",num);
count++;
}

returncount;
}

for(inti=0;i<M;i++){

if(!check(result,i)){
continue;
}

result[l]=i;

count=list(numbers,l+1,result,count);

result[l]=-1;
}

returncount;
}

intmain()
{
intnumbers[M]={1,2,5,7,8,9};
intresult[N]={-1,-1,-1,-1,-1};

intcount=list(numbers,0,result,0);

printf("共有%d个 ",count);

system("pause");
return0;
}

运行结果:

❻ aes算法c语言实现

http://wenku..com/link?url=__-4vlYsYV62kNnt7l9SF3 这里很多,如果不是专门弄这个的很少会去研究的。

专门弄这个的人自己的代码很少给出来的。。

❼ 求Dijkstra算法的C语言实现

//Dijkstra算法 C语言实现 2008-08-26 12:07 #include<stdio.h>
#include<stdlib.h> #define INFINITY 1000000000 //最大距离
#define MAX_NODES 1024 //最大节点数
int n,dist[MAX_NODES][MAX_NODES]; //dist[i][j]表示从 i 到 j 的距离 void shortest_path(int s, int t, int path[])
{
struct state
{
int predecessor; //前驱节点
int length; //到起始点的距离
enum {permanent, tentative} label;
}state[MAX_NODES];
int i,k,min;
struct state * p;
for(p=&state[0]; p<&state[n]; p++)
{
p->predecessor = -1;
p->length = INFINITY;
p->label = tentative;
}
state[t].length = 0;
state[t].label = permanent;

k = t; //k 是当前工作节点
do
{
for(i=0; i<n; i++)
{
if(dist[k][i]!=0 && state[i].label==tentative)
{
if(state[k].length+dist[k][i]<state[i].length)
{
state[i].length = state[k].length+dist[k][i];
state[i].predecessor = k;
}
}
}

k=0;
min=INFINITY;
for(i=0; i<n; i++)
{
if(state[i].label==tentative && state[i].length<min)
{
k=i;
min=state[i].length;
}
}
state[k].label = permanent;
}while(k!=s);

i=0;
k=s;
do
{
path[i++] = k;
k = state[k].predecessor;
}while(k>=0);
}

❽ 设计算法,并用c语言实现。

#include<stdio.h>

intchange(intamount,intindex,intconstcoins[]){
if(amount==0)return1;
if(index<=0)return0;
for(inti=amount/coins[index-1];i>=0;--i){
if(change(amount-i*coins[index-1],index-1,coins)){
if(i)
printf("%d*%d",i,coins[index-1]);
return1;
}
}
return0;
}

intmain()
{
intcoins[]={20,50};
intconstsize=sizeof(coins)/sizeof(int);
intamount;
for(inti=0;i<size;++i){
for(intj=i+1;j<size;++j){
if(coins[i]>coins[j]){
inttemporary=coins[i];
coins[i]=coins[j];
coins[j]=temporary;
}
}
}
if(coins[0]<=0){
printf("数据有误,零钱必须大于0 ");
return-1;
}
printf("请输入要兑换的货币金额:");
scanf("%d",&amount);
if(change(amount,size,coins))
printf(" 兑换成功 ");
elseprintf(" 兑换失败 ");
return0;
}

❾ 求 算法:C语言实现 的PDF

C 算法、数据、指针等书籍PDF。

  • 链接:https://pan..com/s/1VcBvSpXCThxrPDEZtD_9mw

  • 密码:mnep

❿ 求二叉树遍历算法C语言实现的

Status
PreOrderTraverse
(
BiTree
T,
Status
(
*Visit
)
(
TElemType
e
)
)
{
//
采用二叉链表存储结构,Visit
是对数据元素操作的应用函数,先序遍历二叉树
T
的递归算法。
if
(
T
)
{
//

T
不为空
if
(
Visit
(
T->data
)
)
//
调用函数
Visit
if
(
PreOrderTraverse
(
T->lchild,
Visit
)
)
//
递归调用左子树
if
(
PreOrderTraverse
(
T->rchild,
Visit
)
)
return
OK;
//
递归调用右子树
return
ERROR;
}
else
return
OK;
}
//
PreOrderTraverse

热点内容
java编译器中文版 发布:2024-11-15 07:11:56 浏览:247
服务器请求慢怎么排查 发布:2024-11-15 06:55:35 浏览:320
php自学还是培训 发布:2024-11-15 06:54:05 浏览:182
在哪里找到sim卡设置密码 发布:2024-11-15 06:51:47 浏览:392
细说phppdf 发布:2024-11-15 06:38:35 浏览:276
征途PK脚本 发布:2024-11-15 06:37:51 浏览:680
vbs打不开编译器错误 发布:2024-11-15 06:35:12 浏览:344
深海迷航密码在哪里 发布:2024-11-15 06:30:23 浏览:303
服务器日志怎么分析 发布:2024-11-15 06:22:04 浏览:525
字体目录在哪个文件夹 发布:2024-11-15 06:20:28 浏览:181