当前位置:首页 » 操作系统 » c源码

c源码

发布时间: 2022-01-12 13:22:04

1. 请求c代码

以下程序在 Borland C++ Builder 中测试通过

/////////////////////////////////

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

void tc(char **a,int n,int maxlen) ;
void pp(char **,int,int);
int main(int argc, char* argv[])
{ int n,i,len=0,ml=0;
char **c=NULL,t[80];
scanf("%d",&n);
c=realloc(c,n*sizeof(char *));
assert(c!=NULL);
for (i = 0; i<n; i++)
{
scanf("%s",t);
c[i]=malloc(strlen(t)*sizeof(char));
assert(c[i]!=NULL);
strcpy(c[i],t);
len+=strlen(c[i]);
ml=(ml<(int)strlen(c[i]))?strlen(c[i]):ml;
}

tc(c,n,ml);
pp(c,n-1,0);

system("pause");
return 0;
}

void pp(char **a,int n,int sl)
{
int i,p,o;
char *b;
for (i = 0; i<=n-1; i++)
{
o=i;
for (p=i+1; p<=n; p++)
if (strcmp(a[o],a[p])<0) o=p ;
if (o!=i)
{

b=a[o];
a[o]=a[i];
a[i]=b;
}
}
for (i=0; i<=n; i++)
{
for (p=0; p<(int)strlen(a[i]); p++)
{
if (a[i][p]=='a')
{
a[i][p]='\0';
break;
}
}
printf("%s",a[i]);
}
putchar('\n');
}

void tc(char **a,int n,int maxlen)
{
int i,p;
for (i=0; i<n; i++)

if ((int)strlen(a[i])<maxlen)

for (p=strlen(a[i])-1; p<maxlen; p++)

strcat(a[i],"a");
}

///////////////////////////////////////////

程序已修改。

2. 怎样用Microsoft visual c++把c源代码编译成exe 可执行文件

以VC6举例:

1、打开电脑上安装的vc6.0,进入如图界面

3. 二元一次方程 的c源码

float a,b,c,disc,x1,x2,p,q;
scanf("%f%f%f",&a,&b,&c);
disc=b*b-4*a*c;
if(disc<0)printf("error");
else
{
p=-b/(2*a);
q=sqrt(disc)/(2*a);
x1=p-q;
x2=p+q;
printf("x1=%.2f\nx2=%.2f\n",x1,x2);
}}}}
试试~看看是不是你想要的

4. 找中值的c语言源代码

#include<iostream>
#include<cstdlib>
#include<ctime>
#include<algorithm>

usingnamespacestd;


voidswap(intA[],inti,intj)
{
if(i!=j)
{
intt=A[i];
A[i]=A[j];
A[j]=t;
}
}

intpartition(intA[],intp,intr)
{
intx=A[r];
inti=p-1;
for(intj=p;j<=r-1;j++)
{
if(A[j]<=x)
{
i++;
swap(A,i,j);
}
}
swap(A,i+1,r);
returni+1;
}

intrandomized_partition(intA[],intp,intr)
{
srand(time(NULL));
inti=p+rand()%(r-p+1);
swap(A,i,r);
returnpartition(A,p,r);
}

intrandomized_select(intA[],intp,intr,inti)
{
if(p==r)returnA[p];
intq=randomized_partition(A,p,r);
intk=q-p+1;

if(i==k)returnA[q];
elseif(i<k)returnrandomized_select(A,p,q-1,i);
elsereturnrandomized_select(A,q+1,r,i-k);
}

voidtriplet_adjust(intA[],inti,intstep)
{
intj=i+step;
intk=i+2*step;
if(A[i]<A[j])
{
if(A[k]<A[i])swap(A,i,j);
elseif(A[k]<A[j])swap(A,j,k);
}
else
{
if(A[i]<A[k])swap(A,i,j);
elseif(A[k]>A[j])swap(A,j,k);
}
}

doublemean(intA[],intn)
{
doublef=A[0];
for(inti=1;i<n;i++)f+=A[i];
returnf/n;
}

intapproximate_median(intA[],intr)
{
intstep=1;
intsize=1;
inti;
for(intj=0;j<r;j++)size*=3;
for(intk=0;k<r;k++)
{
i=(step-1)/2;
while(i<size)
{
triplet_adjust(A,i,step);
i+=(3*step);
}
step*=3;
}
returnA[(size-1)/2];
}

voidselection_sort(intA[],intleft,intsize,intstep)
{
intmin;
inti,j;
for(i=left;i<left+(size-1)*step;i+=step)
{
min=i;
for(j=i+step;j<left+size;j+=step)
{
if(A[j]<A[min])min=j;
}
swap(A,i,j);
}
}

template<classT,classS>
voidncmerge_sort(T*_A,S_N)
{
Sstep,ins,l,m,r,pos0,pos1;
T*_T=newT[_N];

for(step=2;step<_N*2;step*=2)
{
for(l=0;l+step/2<_N;l+=step)
{
m=l+step/2;
r=m+step/2<_N?m+step/2:_N;
pos0=l;pos1=m;ins=0;
while(pos0<m&&pos1<r)
{
if(_A[pos1]<_A[pos0])_T[ins++]=_A[pos1++];
else_T[ins++]=_A[pos0++];
}
while(pos0<m)_T[ins++]=_A[pos0++];
while(pos1<r)_T[ins++]=_A[pos1++];
while(ins>0)_A[--r]=_T[--ins];
}
}
delete[]_T;
}
constintSORT_NUM_THRESHOD=50;

intapproximate_median_any_n(intA[],intsize)
{
boolleft_to_right=false;
intleft=0;
intstep=1;
inti;
while(size>SORT_NUM_THRESHOD)
{
left_to_right=!left_to_right;
intrem=size%3;
if(left_to_right)i=left;
elsei=left+(3+rem)*step;
for(intj=0;j<(size/3-1);j++)
{
triplet_adjust(A,i,step);
i+=3*step;
}
if(left_to_right)left+=step;
else
{
i=left;
left+=(1+rem)*step;
}
selection_sort(A,i,3+rem,step);
if(rem==2)
{
if(left_to_right)swap(A,i+step,i+2*step);
elseswap(A,i+2*step,i+3*step);
}
step*=3;
size=size/3;
}
selection_sort(A,left,size,step);
returnA[left+step*int((size-1)/2)];
}

intmain(intargc,char*argv[])
{
constintDEFAULT_N=50000000;
intN;
if(argc<2)
{
N=DEFAULT_N;
}
else
{
N=atoi(argv[1]);
}
cout<<"N="<<N<<endl;
clock_tt=clock();
cout<<clock()<<endl;
int*A=newint[N];
cout<<clock()<<endl;
srand(time(NULL));
for(inti=0;i<N;i++)
{
A[i]=rand()%N;
}

clock_tt1=clock();
cout<<t1<<endl;
doubleavg=mean(A,N);
cout<<avg<<endl;
clock_tt2=clock();
cout<<t2<<endl;
intm=approximate_median_any_n(A,N);//近似中值选择算法,不太精确,但速度快点
cout<<m<<endl;
clock_tt3=clock();
cout<<t3<<endl;
m=randomized_select(A,0,N-1,N/2);//随机选择法
cout<<m<<endl;
clock_tt4=clock();
cout<<t4<<endl;
//std::sort(A,A+N);//标准快速排序
ncmerge_sort(A,N);//原地并归排序,排序法
m=A[N/2];
cout<<m<<endl;
clock_tt5=clock();
cout<<t5<<endl;
cout<<endl;
doubledt=(double)(t2-t1)/CLOCKS_PER_SEC;
cout<<dt<<"";
dt=(double)(t3-t2)/CLOCKS_PER_SEC;
cout<<dt<<"";
dt=(double)(t4-t3)/CLOCKS_PER_SEC;
cout<<dt<<"";
dt=(double)(t5-t4)/CLOCKS_PER_SEC;
cout<<dt<<"";
cout<<endl;

return0;
}

5. C语言源代码是什么

数字版“拼图”游戏C源代码:

#include<time.h>

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#include<windows.h>

int i, j, r, k; //i、j、r用于循环, k存放随机数值


int m, n; // m、n是当前空位的下标, t标记排序是否成功

int a[4][4]; //存储4×4共16个数字的数组

void show(void); //输出数组表格

void csh(void); //初始化界面

int yes(void); //判断排序是否成功

void up(void); //数字向上移动到空位(空位则下移)

void down(void); //数字向下移

void left(void); //数字向左移

void rght(void); //数字向右移

void inkey(void); //按键操作

void gtxy(int x, int y) ; //控制光标移动的函数

int main(void)

{ while(1)

{csh( );

while(1)

{ inkey();

show();

if ( yes( ) )

{gtxy(6,12); printf("你成功了! 再来一局y/n?"); break;}

}

if(getch( )== ʹnʹ)break;

}

return 0;

}

void csh(void)

{r=0;

CONSOLE_CURSOR_INFO cursor_info={1,0}; //以下两行是隐藏光标的设置

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);

for(i=0;i<4;i++) //给数组a依序赋值

for(j=0;j<4;j++)
{ if (i==3 && j==3) a[i][j]=0;
else a[i][j]=1+r++;
}

a[3][3]=a[1][1]; a[1][1]=0; //把a[3][3]与a[1][1]的值交换一下

m=1; n=1;

srand((unsigned)time(0)); //初始化随机数发生器

for(r=0;r<500;r++) //将数组各值打乱
{k=rand( )%(4); //取0-3随机数,分别代表上下左右四个方向
switch(k)
{ case 0: { up( );break; }
case 1: {down( );break; }
case 2: {left( );break; }
case 3: {rght( ); break; }
}
}

printf(" 数字拼图");

printf(" ┌──────┬──────┬──────┬──────┐");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" └──────┴──────┴──────┴──────┘");
show( );
}

void show(void)

{for(i=0;i<4;i++)

for(j=0;j<4;j++) //gtxy(7*j+9, 2*i+4)是光标到指定位置输出数字

{gtxy(7*j+9,2*i+4); if(a[i][j]==0)printf(" │");

else if(a[i][j]>9)printf(" %d │",a[i][j]);

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

}

}

void inkey(void)

{ int key;

key=getch( );
switch(key)
{ case 72: { up( ); break;}
case 80: {down( ); break; }
case 75: {left( ); break; }
case 77: {rght( );break;}
}
}

void up(void)

{ if (m!=3) //移动时要考虑空位"0"是否已经在边界
{ a[m][n]=a[m+1][n]; m++; a[m][n]=0; }
}


void down(void)

{ if (m!=0)
{a[m][n]=a[m-1][n]; m--; a[m][n]=0; }
}

void left(void)

{ if (n!=3)
{ a[m][n]=a[m][n+1]; n++; a[m][n]=0;}
}
void rght(void)

{ if (n!=0)
{ a[m][n]=a[m][n-1]; n--; a[m][n]=0; }
}

int yes(void)

{ r=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{ if (a[i][j]!=1+r++) return (r==16)?1:0; }
}

void gtxy(int x, int y) //控制光标移动的函数

{ COORD coord;

coord.X = x;

coord.Y = y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

}

6. 话说有一个C代码

个人感觉确实是多余的。。。。。只需要后面一个就可以了。。。

7. 这个C源代码有错吗

#include<stdio.h>//少了一个“#”号

/*函数声明。下面的代码将使用函数average*/
intaverage(inta,intb,intc);

voidmain(void)
{
inta=1,b=2,c=3;
inta2=1234,b2=2345,c2=3456;
inta3=9876,b3=2345,c3=1;
inty=average(a,b,c);
inty2=average(a2,b2,c2);
inty3=average(a3,b3,c3);
printf(" theaverageis%d",y);
printf(" theaverageis%d",y2);
printf(" theaverageis%d",y3);
getchar();
}

/*函数定义:具体的函数实现*/
/*
函数名:average
参数表:a,b,c:3个整型参数。
返回值:整型,返回3个整数的平均值
*/

intaverage(inta,intb,intc)//多写了一个r字母
{
return(a+b+c)/3;
}

这是申明函数int average(int a,int b,int c);

average要更改的话,整个上下文的函数申明、调用和定义都要改成一样的名称

8. C代码解释!

我回复你的邮件总是被退回,我编译好程序无法给你发送,其它内容就放在这里吧.
这是一款不错的小游戏程序,程序很规范,我不知道你编译出来没有,程序没错误,我已编译出来了,你运行它,玩一下,程序代码就好理解多了,有几个函数的功能在这里说一下:
void DrawMan(int x, int y) 在指定坐标画推箱子的人
void DrawSpace(int x, int y) 在指定坐标画一个空格,用于抹掉原内容.
void DrawBox(int x, int y) 在指定坐标画一个箱子,箱子用'@'表示,箱子没有推到目标位.
void DrawDes(int x, int y) 在指定坐标画一个箱子最终要被推到的位置.
void DrawBoxIn(int x, int y) 在指定坐标画一个已经推到目标位的箱子.
void DrawMap(point *pman) 在指定坐标画地图
while (bioskey(1) == 0); 这是等着用户按键,如果未探测到按键,再探的意思.
处理用户按下方向键的程序要结合游戏当前状态去理解,例如人物已位于地图顶部,再按下向上的方向键,就无须任何操作.
欢迎常联系.推箱子.exe文件大小是17711个字节.创建和修改时间都是:2007年3月19日, 20:40:19,如果文件属性有变,请不要运行,以免染毒.

9. c源代码哪里有下载

http://www.softhy.net/
这里有很多啊,什么源代码都有
http://www.newasp.net/code/dl003185
这里下C的源代码

10. 哈夫曼编码 C源代码

#include <stdio.h>
#define MAXBIT 10 /*定义哈夫曼编码的最大长度*/
#define MAXVALUE 10000 /*定义最大权值*/
#define MAXLEAF 30 /*定义哈夫曼树中最多叶子节点个数*/
#define MAXNODE MAXLEAF*2-1 /*哈夫曼树最多结点数*/
typedef struct { /*哈夫曼编码信息的结构*/
int bit[MAXBIT];
int start;}Hcodetype;
typedef struct { /*哈夫曼树结点的结构*/
int weight;
int parent;
int lchild;
int rchild;
}Hnodetype;
void huffmantree(Hnodetype huffnode[MAXNODE],int n) /*构造哈夫曼树的函数*/
{
int i,j,m1,m2,x1,x2;
for(i=0;i<2*n-1;i++) /*存放哈夫曼树结点的数组huffnode[]初始化*/
{
huffnode[i].weight=0;
huffnode[i].parent=-1;
huffnode[i].lchild=-1;
huffnode[i].rchild=-1;
}
for(i=0;i<n;i++) /*输入入N个叶子节点的权值*/
{
printf("please input %d character's weight\n",i);
scanf("%d",&huffnode[i].weight);
}
for(i=0;i<n-1;i++) /*开始循环构造哈夫曼树*/
{
m1=m2=MAXVALUE;
x1=x2=0;
for(j=0;j<n+i;j++)
{
if(huffnode[j].weight<m1&&huffnode[j].parent==-1)
{
m2=m1;x2=x1;m1=huffnode[j].weight;x1=j;
}
else if(huffnode[j].weight<m2&&huffnode[j].parent==-1)
{
m2=huffnode[j].weight;x2=j;
}
}
huffnode[x1].parent=n+i;
huffnode[x2].parent=n+i;
huffnode[n+i].weight=huffnode[x1].weight+huffnode[x2].weight;
huffnode[n+i].lchild=x1;
huffnode[n+i].rchild=x2;
}
}
void main()
{
Hnodetype huffnode[MAXNODE];
Hcodetype huffcode[MAXLEAF],cd;
int i,j,c,p,n;
printf("please input n\n");
scanf("%d",&n); /*输入叶子节点个数*/
huffmantree(huffnode,n); /*建立哈夫曼树*/
for(i=0;i<n;i++) /*该循环求每个叶子节点对应字符的哈夫曼编码*/
{
cd.start=n-1;c=i;
p=huffnode[c].parent;
while(p!=-1)
{
if(huffnode[p].lchild==c) cd.bit[cd.start]=0;
else cd.bit[cd.start]=1;
cd.start--;c=p;
p=huffnode[c].parent;
}
for(j=cd.start+1;j<n;j++) /*保存求出的每个叶节点的哈夫曼编码和编码的起始位*/
huffcode[i].bit[j]=cd.bit[j];
huffcode[i].start=cd.start;
}
for(i=0;i<n;i++) /*输出每个叶子节点的哈夫曼编码*/
{
printf("%d character is:",i);
for(j=huffcode[i].start+1;j<n;j++)
printf("%d",huffcode[i].bit[j]);
printf("\n");
}
}

热点内容
狂三脚本 发布:2024-11-15 17:31:38 浏览:871
附近存储柜 发布:2024-11-15 17:15:17 浏览:451
王选解决汉字存储问题 发布:2024-11-15 17:15:11 浏览:659
球球大作战安卓为什么不能玩哪些模式 发布:2024-11-15 17:14:26 浏览:995
存储器讲课 发布:2024-11-15 17:14:12 浏览:195
安卓充电头怎么称呼 发布:2024-11-15 17:11:17 浏览:445
猎人手游源码 发布:2024-11-15 17:09:28 浏览:432
qt资源图片编译 发布:2024-11-15 16:59:26 浏览:665
编译选项保护范围最广 发布:2024-11-15 16:57:47 浏览:605
c语言中的除号 发布:2024-11-15 16:51:09 浏览:216