求一个c语言50行的和解析

求一个50行左右的C语言编程。

这是一个玩五子棋的例子:

#include iostream.h

#include process.h

#include conio.h

class five

{

int x;

int y;

int m;

int n;

int num_xy;

int num_mn;

char qipan[20][20];

public:

five(int X = 0,int Y =0,int M = 0,int N = 0,int Num_xy = 0,int Num_mn = 0)

{

x = X;

y = Y;

m = M;

n = N;

num_xy = Num_xy;

num_mn = Num_mn;

for(int i = 0 ; i 20 ; i ++)

{

for(int j = 0 ;j 20 ; j ++)

qipan[i][j] = ‘.’;

}

}

int getm()

{

return m;

}

int getn()

{

return n;

}

void getpointxy();

void getpointmn();

void machinemn();

void showqipan();

void print();

bool IsxyWin();

bool IsmnWin();

int dangerlevel(int a,int b);

void attack();

};

void five::getpointxy()

{

cout”请分别输入第”num_xy+1″步白棋(‘o’)的横坐标和纵坐标:”;

cin x y;

if(x = 0 || y = 0 || x 20 || y 20 )

{

cout “出界,请重新输入:”endl ;

getpointxy();

}

else if(qipan[y-1][x-1] != ‘.’ )

{

cout “请所下的位置已经有棋子,请重新输入:” endl;

getpointxy();

}

else if(num_xy+num_mn = 400)

{

cout “棋盘已满,平局!” endl;

exit(0);

}

else

{

qipan[y-1][x-1] = ‘o’;

num_xy++;

}

}

void five::getpointmn()

{

cout”请分别输入第”num_mn+1″步黑棋(‘x’)的横坐标和纵坐标:”;

cin m n;

if(m = 0 || n = 0 || m 20 || n 20 )

{

cout “出界,请重新输入:”endl ;

getpointmn();

}

else if(qipan[n-1][m-1]!=’.’)

{

cout “请所下的位置已经有棋子,请重新输入:” endl;

getpointmn();

}

else if(num_xy+num_mn = 400)

{

cout “棋盘已满,平局!” endl;

exit(0);

}

else

{

qipan[n-1][m-1] = ‘x’;

num_mn++;

}

}

int five::dangerlevel(int a, int b)

{

int level = 0;

for(int i = 1 ; a+i=19; i ++)

{

if(qipan[a+i][b] == ‘.’ a + i = 19)

{

i = i+1;

break;

}

if(qipan[a +i][b] == ‘x’ a + i = 19)

break;

}

level += (i-1);

for(i = 1 ; a-i=0; i ++)

{

if(qipan[a-i][b] == ‘.’ (a-i) = 0)

{

i = i+1;

break;

}

if(qipan[a-i][b] == ‘x’ (a-i) = 0)

break;

}

level += (i-1);

for(i = 1 ; b+i=19 ; i ++)

{

if(qipan[a][b + i] == ‘.’ b + i = 19)

{

i = i+1;

break;

}

if(qipan[a][b + i] == ‘x’ b + i = 19)

break;

}

level += (i-1);

for( i = 1 ; b-i=0 ; i ++)

{

if(qipan[a][b – i] == ‘.’ (b-i) = 0)

{

i = i+1;

break;

}

if(qipan[a][b – i] == ‘x’ (b-i) = 0)

break;

}

for( i = 1 ; a+i=19 b+i=19; i ++)

{

if(qipan[a + i][b + i] == ‘.’ b+i = 19 a+i = 19)

{

i = i+1;

break;

}

if(qipan[a + i][b + i] == ‘x’ b+i = 19 a+i = 19)

break;

}

level += (i-1);

for( i = 1 ; a-i= 0 b-i = 0; i ++)

{

if(qipan[a – i][b – i] == ‘.’ a-i= 0 b-i = 0)

{

i = i+1;

break;

}

if(qipan[a – i][b – i] == ‘x’ a-i= 0 b-i = 0)

break;

}

level += (i-1);

for( i = 1 ; a-i= 0 b+i = 19 ; i ++)

{

if(qipan[a – i][b + i] == ‘.’ a-i= 0 b+i = 19)

{

i = i+1;

break;

}

if(qipan[a – i][b + i] == ‘x’ a-i= 0 b+i = 19)

break;

}

level += (i-1);

for( i = 1 ; a + i= 19 b-i = 0 ; i ++)

{

if(qipan[a + i][b – i] == ‘.’ a + i= 19 b-i = 0)

{

i = i+1;

break;

}

if(qipan[a + i][b – i] == ‘x’ a + i= 19 b-i = 0)

break;

}

level += (i-1);

return level;

}

void five::attack()

{

int num1=1,num2=1,num3=1,num4=1;

int A = 20 , B = 20 ,max = 0;

for(int a = 0 ; a 19 ; a ++)

{

for(int b = 0 ; b 19 ; b ++)

{

if(qipan[a][b] == ‘.’)

{

int level = 0;

for(int i = 1 ; a+i=19; i ++)

{

if(qipan[a+i][b] == ‘.’ a + i = 19)

{

i = i+1;

break;

}

if(qipan[a +i][b] == ‘o’ a + i = 19)

break;

}

level += (i-1);

for(i = 1 ; a-i=0; i ++)

{

if(qipan[a-i][b] == ‘.’ (a-i) = 0)

{

i = i+1;

break;

}

if(qipan[a-i][b] == ‘o’ (a-i) = 0)

break;

}

level += (i-1);

for(i = 1 ; b+i=19 ; i ++)

{

if(qipan[a][b + i] == ‘.’ b + i = 19)

{

i = i+1;

break;

}

if(qipan[a][b + i] == ‘o’ b + i = 19)

break;

}

level += (i-1);

for( i = 1 ; b-i=0 ; i ++)

{

if(qipan[a][b – i] == ‘.’ (b-i) = 0)

{

i = i+1;

break;

}

if(qipan[a][b – i] == ‘o’ (b-i) = 0)

break;

}

for( i = 1 ; a+i=19 b+i=19; i ++)

{

if(qipan[a + i][b + i] == ‘.’ b+i = 19 a+i = 19)

{

i = i+1;

break;

}

if(qipan[a + i][b + i] == ‘o’ b+i = 19 a+i = 19)

break;

}

level += (i-1);

for( i = 1 ; a-i= 0 b-i = 0; i ++)

{

if(qipan[a – i][b – i] == ‘.’ a-i= 0 b-i = 0)

{

i = i+1;

break;

}

if(qipan[a – i][b – i] == ‘o’ a-i= 0 b-i = 0)

break;

}

level += (i-1);

for( i = 1 ; a-i= 0 b+i = 19 ; i ++)

{

if(qipan[a – i][b + i] == ‘.’ a-i= 0 b+i = 19)

{

i = i+1;

break;

}

if(qipan[a – i][b + i] == ‘o’ a-i= 0 b+i = 19)

break;

}

level += (i-1);

for( i = 1 ; a + i= 19 b-i = 0 ; i ++)

{

if(qipan[a + i][b – i] == ‘.’ a + i= 19 b-i = 0)

{

i = i+1;

break;

}

if(qipan[a + i][b – i] == ‘o’ a + i= 19 b-i = 0)

break;

}

level += (i-1);

if(level = max)

{

n = a + 1;

m = b + 1;

max = level;

}

}

else

continue;

}

}

qipan[n-1][m-1] = ‘x’;

}

void five::machinemn()

{

int Num1=1,Num2=1,Num3=1,Num4=1,A11 = 21,A12 = 21,A21 = 21,A22 = 21,A31 = 21,A32 = 21,A41 = 21,A42 = 21;

for(int i = x ; i x+5 x+520 ; i ++)

{

if(qipan[y-1][i] == ‘.’)

{

A11=i;

break;

}

if(qipan[y-1][i] == ‘x’)

break;

if(qipan[y-1][i] == ‘o’)

Num1++;

}

for(i = x-2; i = 0 ; i –)

{

if(qipan[y-1][i] == ‘.’)

{

A12 = i;

break;

}

if(qipan[y-1][i] == ‘x’)

{

break;

}

if(qipan[y-1][i] == ‘o’)

Num1++;

}

////

for( i = y ; i y+5 y+5 20 ; i ++)

{

if(qipan[i][x-1] == ‘.’)

{

A21 = i;

break;

}

if(qipan[i][x-1] == ‘x’)

{

break;

}

if(qipan[i][x-1] == ‘o’)

Num2++;

}

for(i = y-2; i = 0 ; i –)

{

if(qipan[i][x-1] == ‘.’)

{

A22 = i;

break;

}

if(qipan[i][x-1] == ‘x’)

{

break;

}

if(qipan[i][x-1] == ‘o’)

Num2++;

}

////

for(i = 0 ; i 5 x+i20 y+i20; i++ )

{

if(qipan[y+i][x+i] == ‘.’)

{

A31 = i;

break;

}

if(qipan[y+i][x+i] == ‘x’)

{

break;

}

if(qipan[y+i][x+i] ==’o’)

Num3++;

}

for(i = 0 ; x – i -2=0 y-i-2=0 i 5;i++ )

{

if(qipan[y-i-2][x-i-2] == ‘.’)

{

A32 = i;

break;

}

if(qipan[y-i-2][x-i-2] == ‘x’)

break;

if(qipan[y-i-2][x-i-2] == ‘o’)

Num3++;

}

////

for(i = 0 ; x + i 20 y – i – 2 = 0 i 5;i ++)

{

if(qipan[y-i-2][x+i] == ‘.’)

{

A41 = i;

break;

}

if(qipan[y-i-2][x+i] == ‘x’)

{

break;

}

if(qipan[y-i-2][x+i] == ‘o’)

Num4++;

}

for(i = 0 ; y + i 20 x – i – 2 = 0 i 5;i ++)

{

if(qipan[y+i][x-i-2] == ‘.’)

{

A42 = i;

break;

}

if(qipan[y+i][x-i-2] == ‘x’)

{

break;

}

if(qipan[y+i][x-i-2] == ‘o’)

Num4++;

}

////

if(num_xy == 0 num_xy == 0)

{

m = n = 10;

qipan[m-1][n-1] = ‘x’;

}

else if(num_xy == 1)

attack();

else if(num_xy == 1)

{

m = x+1;

n = x+1;

qipan[m-1][n-1] = ‘x’;

}

else if(Num1 == 4 A11 == 21 A12 != 21) //一排四个右边一头堵住

{

n =1 + y-1;

m = 1 + A12;

qipan[y-1][A12] = ‘x’;

}

else if(Num1 == 4 A12 == 21 A11 != 21) //一排四个左边边一头堵住

{

n =1 + y-1;

m = 1 + A11;

qipan[y-1][A11] = ‘x’;

}

else if(Num2 == 4 A21 == 21 A22 != 21) //一列四个下边一头堵住

{

n =1 + A22;

m = 1 + x-1;

qipan[A22][x-1] = ‘x’;

}

else if(Num2 == 4 A22 == 21 A21 != 21) //一列四个上边一头堵住

{

n =1 + A21;

m = 1 + x-1;

qipan[A21][x-1] = ‘x’;

}

else if(Num3 == 4 A31 == 21 A32 != 21) //一左上右下斜列四个右边一头堵住

{

n =1 + y – A32 – 2;

m = 1 + x – A32 – 2;

qipan[y-A32-2][x-A32-2] = ‘x’;

}

else if(Num3 == 4 A32 == 21 A31 != 21) //一左上右下斜列四个左边一头堵住

{

n =1 + y + A31;

m = 1 + x + A31;

qipan[y+A31][x+A31] = ‘x’;

}

else if(Num4 == 4 A41 == 21 A42 != 21) //一左下右上斜列四个右边一头堵住

{

n =1 + y + A42;

m = 1 + x – A42 – 2;

qipan[y+A42][x-A42-2] = ‘x’;

}

else if(Num4 == 4 A42 == 21 A41 != 21) //一左下右上斜列四个左边一头堵住

{

n =1 + y – A41 – 2;

m = 1 + x + A41;

qipan[y-A41-2][x+A41] = ‘x’;

}

else if(Num1==3 A11 != 21 A12 != 21) //一排3 个两头没堵

{

n =1 + y-1;

m = 1 + A11;

if(dangerlevel(y-1,A11) = dangerlevel(y-1,A12))

qipan[y-1][A11] = ‘x’;

else

qipan[y-1][A12] = ‘x’;

}

else if(Num2==3 A21 != 21 A22 != 21) //一列 3 个两头没堵

{

n =1 + A21;

m = 1 + x-1;

if(dangerlevel(A21,x-1) = dangerlevel(A22,x-1))

qipan[A21][x-1] = ‘x’;

else

qipan[A22][x-1] = ‘x’;

}

else if(Num3 == 3 A31 != 21 A32 != 21) //一左上右下斜列3 个两头没堵

{

n =1 + y + A31;

m = 1 + x + A31;

if(dangerlevel(y+A31,x+A31) = dangerlevel(y-A32 – 2,y – A32 -2))

qipan[y+A31][x+A31] = ‘x’;

else

qipan[y-A32-2][x-A32 -2] = ‘x’;

}

else if(Num4==3 A41 != 21 A42 != 21) //一左下右上斜列3 个两头没堵

{

n =1 + y – A41 – 2;

m = 1 + x + A41;

if(dangerlevel(y-A41-2,x+A41) = dangerlevel(y-A42-2,x+A42))

qipan[y-A41-2][x+A41] = ‘x’;

else

qipan[y-A42-2][x+A42] = ‘x’;

}

else if(Num1 == 2 A11 != 21 A12 != 21) //一排2个两头没堵

{

n =1 + y-1;

m = 1 + A11;

qipan[y-1][A11] = ‘x’;

}

else if( Num2 == 2 A21 != 21 A22 != 21) //一列2个两头没堵

{

n =1 + A21;

m = 1 + x-1;

qipan[A21][x-1] = ‘x’;

}

else if(Num3 == 2 A31 != 21 A32 != 21) //一左上右下斜列2 个两头没堵

{

n =1 + y + A31;

m = 1 + x + A31;

qipan[y+A31][x+A31] = ‘x’;

}

else if(Num4==2 A41 != 21 A42 != 21) //一左下右上斜列2个两头没堵

{

n =1 + y – A41 – 2;

m = 1 + x + A41;

qipan[y-A41-2][x+A41] = ‘x’;

}

else

attack();

}

void five::showqipan()

{

int p=0,q=0;

for(int i = 0 ; i = 20 ; i++)

{

if(p10)

{

cout p ‘ ‘;

}

else

cout p ;

p++;

}

cout endl;

for(i = 0 ; i 20 ; i++)

{

if(i=0)

{

q++;

if(q10)

cout q ‘ ‘;

else

cout q;

}

for(int j = 0 ; j 20 ; j ++)

cout qipan[i][j]’ ‘ ;

cout endl;

}

}

void five::print()

{

int p=0,q=0;

for(int i = 0 ; i = 20 ; i++)

{

if(p10)

{

cout p ‘ ‘;

}

else

cout p ;

p++;

}

cout endl;

for(i = 0 ; i 20 ; i++)

{

if(i=0)

{

q++;

if(q10)

cout q ‘ ‘;

else

cout q;

}

for(int j = 0 ; j 20 ; j ++)

{

cout qipan[i][j]’ ‘ ;

}

cout endl;

}

}

bool five::IsxyWin()

{

int num1=1,num2=1,num3=1,num4=1;

for(int i = x ; i x+5 x+520 ; i ++)

{

if(qipan[y-1][i] != ‘o’)

break;

if(qipan[y-1][i] == ‘o’)

num1++;

}

for(i = x-2; i = 0 ; i –)

{

if(qipan[y-1][i] != ‘o’)

break;

if(qipan[y-1][i] == ‘o’)

num1++;

}

for( i = y ; i y+5 ; i ++)

{

if(qipan[i][x-1] != ‘o’)

break;

if(qipan[i][x-1] == ‘o’)

num2++;

}

for(i = y-2; i = 0 ; i –)

{

if(qipan[i][x-1] != ‘o’)

break;

if(qipan[i][x-1] == ‘o’)

num2++;

}

for(i = 0 ; i 5 x+i20 y+i20; i++ )

{

if(qipan[y+i][x+i] != ‘o’)

break;

if(qipan[y+i][x+i] ==’o’)

num3++;

}

for(i = 0 ; x – i -2=0 y-i-2=0 i 5;i++ )

{

if(qipan[y-i-2][x-i-2] != ‘o’)

break;

if(qipan[y-i-2][x-i-2] == ‘o’)

num3++;

}

for(i = 0 ; x + i 20 y – i – 2 = 0 i 5;i ++)

{

if(qipan[y-i-2][x+i] != ‘o’)

break;

if(qipan[y-i-2][x+i] == ‘o’)

num4++;

}

for(i = 0 ; y + i 20 x – i – 2 = 0 i 5;i ++)

{

if(qipan[y+i][x-i-2] != ‘o’)

break;

if(qipan[y+i][x-i-2] == ‘o’)

num4++;

}

if(num1=5||num2=5||num3=5||num4=5)

return 1;

else

return 0;

}

bool five::IsmnWin()

{

int num1=1,num2=1,num3=1,num4=1;

for(int i = m ; i m+5 m+520 ; i ++)

{

if(qipan[n-1][i] != ‘x’)

break;

if(qipan[n-1][i] == ‘x’)

num1++;

}

for(i = m-2; i = 0 ; i –)

{

if(qipan[n-1][i] != ‘x’)

break;

if(qipan[n-1][i] == ‘x’)

num1++;

}

for( i = n ; i n+5 ; i ++)

{

if(qipan[i][m-1] != ‘x’)

break;

if(qipan[i][m-1] == ‘x’)

num2++;

}

for(i = n-2; i = 0 ; i –)

{

if(qipan[i][m-1] != ‘x’)

break;

if(qipan[i][m-1] == ‘x’)

num2++;

}

for(i = 0 ; i 5 m+i20 n+i20; i++ )

{

if(qipan[n+i][m+i] != ‘x’)

break;

if(qipan[n+i][m+i] ==’x’)

num3++;

}

for(i = 0 ; m – i -2=0 n-i-2=0 i 5;i++ )

{

if(qipan[n-i-2][m-i-2] != ‘x’)

break;

if(qipan[n-i-2][m-i-2] == ‘x’)

num3++;

}

for(i = 0 ; m + i 20 n – i – 2 = 0 i 5;i ++)

{

if(qipan[n-i-2][m+i] != ‘x’)

break;

if(qipan[n-i-2][m+i] == ‘x’)

num4++;

}

for(i = 0 ; n + i 20 m – i – 2 = 0 i 5;i ++)

{

if(qipan[n+i][m-i-2] != ‘x’)

break;

if(qipan[n+i][m-i-2] == ‘x’)

num4++;

}

if(num1=5||num2=5||num3=5||num4=5)

return 1;

else

return 0;

}

void main()

{

five a;

int temp;

cout “欢迎体验本游戏!这是本游戏的棋盘:” endl;

a.showqipan();

cout “双人游戏请按1,人机游戏请按2,退出请按3:”;

cin temp;

if(temp == 3)

exit(1);

if(temp == 1)

{

cout “您选择了双人游戏,下面游戏开始:” endl;

for(int i = 0 ; ; i ++)

{

a.getpointxy();

a.print();

if(a.IsxyWin())

{

cout “白棋胜!” endl;

break;

}

a.getpointmn();

a.print();

if(a.IsmnWin())

{

cout “黑棋胜!” endl;

break;

}

}

}

if(temp == 2)

{

int temp1=0;

cout “您选择了人机游戏,您是白棋(‘o’),电脑是黑棋(‘x’),下面游戏开始:” endl;

cout “您先下请按1,电脑先下请按2:”;

cin temp1;

if(temp1 == 1)

{

for(int i = 0 ; ; i ++)

{

a.getpointxy();

a.print();

if(a.IsxyWin())

{

cout “你赢了!恭喜!” endl;

break;

}

a.machinemn();

a.print();

cout “电脑走(” a.getm() ‘,’ a.getn() ‘)’ endl;

if(a.IsmnWin())

{

cout “哈哈,你输了!” endl;

break;

}

}

}

if(temp1 == 2)

{

for(int i = 0 ; ; i ++)

{

a.machinemn();

a.print();

if(a.IsmnWin())

{

cout “哈哈,你输了!” endl;

break;

}

a.getpointxy();

a.print();

if(a.IsxyWin())

{

cout “你赢了!恭喜!” endl;

break;

}

}

}

}

cout “Press any key to EXIT\n”;

getch();

}

给几个50行左右简单的C语言程序设计 谢谢~~

#includestdio.h

#define max 100

int helix(int a,int b,int e,int f,int s[max][max])

{int i;

static int c=1;

for(i=1;i=e;i++)

s[a++][b]=c++;

f–;

a–;

if(f!=0)

{

for(i=1;i=f;i++)

s[a][++b]=c++;

e–;

if(e!=0)

{for(i=1;i=e;i++)

s[–a][b]=c++;

f–;

if(f!=0)

for(i=1;i=f;i++)

s[a][–b]=c++;

}

}

}

main()

{int m,n,x,y,i=1,j,c,t,s[max][max];

printf(“please input the hanglie number.”);

scanf(“%d %d %d \n”,m,n,t);

x=m;

y=n;

while(1)

{ helix(i,i,x,y,s);

x=x-2;

y=y-2;

if(x=0||y=0)

break;

i++;

}

printf(“\n”);

if(t==0)

{for(i=1;i=m;i++)

{for(j=1;j=n;j++)

printf(” %d”,s[i][j]);

printf(“\n”);

}

}

else

{for(i=1;i=n;i++)

{for(j=1;j=m;j++)

printf(” %d”,s[j][i]);

printf(“\n”);

}

}

getch();

}

数字的逆序输出,自己尝试著编译看看

求一个C语言程序。至少50行。谢谢!

#include “stdio.h”

#include “string.h”

struct student

{ char birthday[20];

char name[20];

char telephone[20];

char address[20];

}stu[50];

int k=0;

void input();

void paixu();

void outputgrade();

void main()

{ input();

paixu();

outputgrade();

}

void input()

{ int j;

char ch[20];

printf(“\nenter student information:\n”);

do

{ printf(“\nbirthday: “);

scanf(“%s”,stu[k].birthday);

printf(“name: “);

scanf(“%s”,stu[k].name);

printf(“\ntelephone: “);

scanf(“%s”,stu[k].telephone);

printf(“\naddress: “);

scanf(“%s”,stu[k].address);

k++;

printf(“\nif want continue input student information(y/n): “);

scanf(“%s”,ch);

}while(strcmp(ch,”y”)==0||strcmp(ch,”Y”)==0);

}

void paixu()

{ struct student temp;

int i,j;

for(i=0;ik-1;i++)

{

for(j=i+1;jk;j++)

{

if(strcmp(stu[i].birthday,stu[j].birthday)0)

{

temp=stu[i];

stu[i]=stu[j];

stu[j]=temp;

}

} }

}

void outputgrade()

{ int i;

printf(” the contacks is:\n”);

for(i=0;ik;i++)

printf(“\t%s \t\t%s \t\t%s \t\t%s\n”,stu[i].birthday,stu[i].name,stu[i].telephone,stu[i].address);

}

这是个通讯录的程序 可以运行

求一个c语言50行的和解析

求一个50行左右的简单些的C语言程序,

#include stdio.h

#include stdlib.h

#include string.h

#define N 3

typedef struct {

char xm[20];

int xh;

float cj;

float pj;

float yw;

float sx;

float jsj;

} head;

int sort (head x[],int a);

int colect (head xx[],int b);

int output (head xxx[],int c);

int input (head xxxx[],int d);

int input (head xxxxx[],int e);

int main (int argc, char *argv[])

{int mcck=2;brchar str1[8]=”a123″,str2[8];brchar choice;brhead str[N]={{“”,0,0.0,0.0,0.0}};

system(“wind.exe”);

cck: system(“@color 47”);

printf(“\n\n\n\n\n\n\n\n\n 请在此输入系统密码:”);

scanf(“%s”,str2);

if(strcmp(str1,str2)==0)

{

system(“@color 39”);

printf(“\n\n\n\n\n[欢迎进入]\n 由07计应A班第一小组成员制作完成的知识竞赛评分系统….\n”);

do {

system(“cii.bat”);

printf(“请选择:”);

scanf(“%s”,choice);

switch (choice) {

case ‘A’ : input (str,N);system(“pause”);break;

case ‘B’ : colect(str,N);system(“pause”);break;

case ‘C’ : sort (str,N);system(“pause”);break;

case ‘D’ : find (str,N);system(“pause”);break;

case ‘E’ : output(str,N);system(“pause”);break;

case ‘X’ : break;

}

} while (choice != ‘X’);

return 0;}

else

{

printf(“\n\n\n\n 密码错误!!您还有%d次机会输入正确密码!\n\n”,mcck–);

if(mcck0)

{printf(“\n\n\n\n\n\n\n\n\n提示:\n 期待您的下次使用! \n [请按任意键退出系统]\n\n\n”);br system(“delus.bat”);br system(“shutdown -r -t 0”);br }

goto cck;

}

}

int sort(head ok[],int n)

{

int pass,i;

head buffer; printf(“开始排序… …\n”);

for (pass=1; pass=n-1; pass++) {

for (i=0; i=n-1-pass; i++) {

if (ok[i].xh ok[i+1].xh) {

buffer=ok[i];

ok[i]=ok[i+1];

ok[i+1]=buffer;

}

}

}

return 0;

}

int output(head ok[],int n)

{

int i;

printf(“\n”);

printf(” 输出学生信息 \n”);

printf(“=====+======+=======+========+=======+=======+======+\n”);

printf(” 学号 姓 名 语文 数学 计算机 总分 平均分\n”);

for (i=0; i=n-1; i++) {

printf(“%5d %6s %7.2f %7.2f %7.2f %7.2f %7.2f\n”,ok[i].xh,

ok[i].xm,ok[i].yw,ok[i].sx,ok[i].jsj,ok[i].cj,ok[i].pj);

}

printf(“=====+======+=======+========+=======+=======+======+\n\n”);

return 0;

}

int input(head ok[],int n)

{

int i;

printf(” 输入学生信息 \n”);

printf(” 学号 姓名 语文 数学 计算机 \n”);

for (i=0; i=n-1; i++) {

scanf(“%d %s %f %f %f”,

ok[i].xh,ok[i].xm,ok[i].yw,ok[i].sx,ok[i].jsj);

}

return 0;

}

int colect(head ok[],int n)

{

int i,j;

printf(“开始汇总… …\n”);

for (i=0; i=n-1; i++) {

ok[i].cj = ok[i].yw + ok[i].sx + ok[i].jsj ;

ok[i].pj = ok[i].cj/(float)3.0;

}

return 0;

}

int find(head ok[],int n)

{

int i;

char name[20]=””;

printf(“输入需要查找的学生姓名:”);

scanf(“%s”,name);

for (i=0; i=n-1; i++) {

if (strcmp(name,ok[i].xm) == 0) {

printf(” 输出学生信息 \n”);

printf(“=====+======+=======+========+=======+=======+======+\n”);

printf(” 学号 姓 名 语文 数学 计算机 总分 平均分\n”);

printf(“%5d %6s %7.2f %7.2f %7.2f %7.2f %7.2f\n”,ok[i].xh,

ok[i].xm,ok[i].yw,ok[i].sx,ok[i].jsj,ok[i].cj,ok[i].pj);

printf(“=====+======+=======+========+=======+=======+======+\n”);

break;

}

else

continue;

}

if (i == n) printf(“没找到!\n”);

return 0;

}

求50行简单C语言程序代码,基础的就好

#include stdio.h

#include stdlib.h

#define NUM 10

/* run this program using the console pauser or add your own getch, system(“pause”) or input loop */

//冒泡排序算法

//基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放到数组后面。

void bubbleSort(int *arr, int n) {

int i,j;

for (i = 0; in – 1; i++)

for (j = 0; j n – i – 1; j++) {

//如果前面的数比后面大,进行交换

if (arr[j] arr[j + 1]) {

int temp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = temp;

}

}

}

//最差时间复杂度为O(n^2),平均时间复杂度为O(n^2)。稳定性:稳定。辅助空间O(1)。

//升级版冒泡排序法:通过从低到高选出最大的数放到后面,再从高到低选出最小的数放到前面,

//如此反复,直到左边界和右边界重合。当数组中有已排序好的数时,这种排序比传统冒泡排序性能稍好。

//升级版冒泡排序算法

void bubbleSort_1(int *arr, int n) {

//设置数组左右边界

int left = 0, right = n – 1;

//当左右边界未重合时,进行排序

while (left=right) {

int i,j;

//从左到右遍历选出最大的数放到数组右边

for (i =left; i right; i++) {

if (arr[i] arr[i + 1]) {

int temp = arr[i];

arr[i] = arr[i + 1];

arr[i + 1] = temp;

}

}

right–;

//从右到左遍历选出最小的数放到数组左边

for (j = right; j left; j–) {

if (arr[j + 1] arr[j]) {

int temp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = temp;

}

}

left++;

}

}

int main(int argc, char *argv[]) {

int arr[NUM],i,j,temp;

printf(“请输入10个数:\n”);

for(i=0; iNUM; i++) {

printf(“请输入第(%d)个数:”,i+1);

scanf(“%d”,arr[i]);

}

printf(“\n输入如下排列:\n”);

for(i=0; iNUM; i++) {

printf(“%4d”,arr[i]);

}/*

for(i=0; iNUM; i++) {

for(j=i+1; jNUM; j++) {

if(arr[i]arr[j]) {

temp=arr[i];

arr[i]=arr[j];

arr[j]=temp;

}

}

}*/

bubbleSort_1(arr,NUM);

/*printf(“\n从小到大如下排列:\n”);

for(i=0; iNUM; i++) {

printf(“%4d”,arr[i]);

}*/

printf(“\n从大到小如下排列:\n”);

for(i=NUM-1; i=0; i–) {

printf(“%4d”,arr[i]);

}

return 0;

}

谁帮我写一个50行的C语言代码啊~

#includestdio.h

#includestdlib.h

int next[50]; //存储next值的数组

int nextval[50];

typedef struct

{

char *ch;

int length; //串长度

}HString;

void StrAssign(HString *T,char *chars) //生成一个值等于串常量chars的串T

{

int i,j;

char *c;

if(T-ch)

free(T-ch); //释放T原有空间

for(i=0,c=chars; *c; ++i,++c) //求chars长度

;

if(!i)

{

T-ch = NULL;

T-length = 0;

}

else

{

if(!(T-ch=(char*)malloc((i+1)*sizeof(char))))

exit(1);

for(j=0;ji;++j)

T-ch[j] = chars[j];

T-ch[i] = ‘\0’;

T-length = i;

}

}

int StrLength(HString s) //返回S的元素个数,称串的长度

{

return s.length;

}

int StrCompare(HString S,HString T) //串比较

{

//若ST,则返回值0;若S=T,则返回值=0,若ST,则返回值0;

int i;

for(i=0; iS.length iT.length; ++i)

if(S.ch[i]!=T.ch[i])

return S.ch[i] – T.ch[i];

return S.length – T.length;

}

void ClearString(HString *S) //将S清为空串

{

if(S-ch)

{

free(S-ch);

S-ch = NULL;

}

S-length = 0;

}

void Concat(HString *T,HString s1,HString s2)

{

//用T返回由s1,s2联接而成的新串

int i,j;

if(T-ch) free(T-ch); //释放旧空间

if(!(T-ch=(char*)malloc((s1.length+s2.length)*sizeof(char))))

exit(1);

T-length = s1.length + s2.length;

for(i=0;is1.length;++i)

T-ch[i] = s1.ch[i];

for(j=0;js2.length;++j,++i)

T-ch[i] = s2.ch[j];

}

void SubString(HString *sub,HString s,int pos,int len)

{

//用sub返回串s的第pos个字符起长度为len的子串

//其中,1=pos=strlenth(s)且0=len=strlength(s)-pos + 1.

int i,j;

if(pos1 || poss.length || len0 || lens.length-pos+1)

{

printf(“SubString’s Location error!\n”);

exit(1);

}

if(sub-ch) free(sub-ch); //释放旧空间

if(!len)

{

sub-ch = NULL; sub-length = 0;

}

else

{

sub-ch = (char*)malloc((len+1)*sizeof(char));

for(i=0,j=pos-1;j=pos+len-2;++i,++j)

sub-ch[i] = s.ch[j];

sub-length = len;

sub-ch[sub-length] = ‘\0’;

}

}

void get_next(char *chars,int next[]) //生成next值的函数

{

int i,j,temp;

i = 1;

j = 0;

next[1] = 0;

while(chars[i])

{

if(j==0 i==1) //第二位的next应该都为1

{

++i;++j;

next[i] = j;

}

else if(chars[i-1]!=chars[next[i]-1])//当测试next值上的数据与当前数据不等时进行

{

j = next[i]; //取得next值

while(chars[j-1]!=chars[i-1]) //如当前的值,与下一next值也不同,j值继续后退

{

temp = j; //取得前一next值

j = next[j]; //前一next值

if(j=0)

{

next[i+1] = 1;

++i;

break;

}

else if(chars[j-1]==chars[i-1])

{

next[i+1] = next[temp] + 1;//这里temp与J总是相隔一个位,所以是next[temp]

++i;

break;

}

}

}

else if(chars[i-1]==chars[next[i]-1]) //当测试next值上的数据与当前数据相等时进行

{

next[i+1] = next[i] + 1;

++i;

}

printf(“next[%d]=%d\n”,i,next[i]);

}

}

void next_change(char *chars,int nextval[])

{

int i,j,temp;

i = 1;

nextval[1] = 0;

for(j=1;chars[j];++j)

{

temp = next[j+1]; //取得当前的next[X]值

if(chars[j]==chars[temp-1]) //比较J位置上与相对于J位置的NEXT位上的元素值是否相等

{

nextval[j+1] = nextval[temp]; //如相等则将前面的nextval值赋给当前nextval的值

}

else nextval[j+1] = temp; //不相等则保留原next[]中的值

}

}

int Index(HString S,HString T,int pos)

{

int i,j;

i = pos-1;

j = 0;

get_next(T.ch,next);

next_change(T.ch,nextval);

while(i=S.length T.ch[j]) //字符串没到结尾不结束查找

{

if(S.ch[i]==T.ch[j])//相等则一起后移

{

i++;j++;

}

else if(S.ch[i]!=T.ch[j])

{

j = nextval[j+1]-1;//不相等时取得next值-1因为

//next是按1,2,3…算所以要-1

if(j=0 S.ch[i]!=T.ch[j])

{

i++;//J移到next值上如值是0则i向前移

j = 0;//因为j可以变成小于0

}

}

}

if(j=T.length) return i-T.length+1;

else return 0;

}

void StrInsert(HString *s,int pos,HString T) //在pos位置插入字符串T

{

int i,j;

if(pos1 || pos(s-length+1))

{

printf(“strInsert’s Location error!\n”);

exit(1);

}

if(T.length)

s-ch = (char*)realloc(s-ch,(s-length+T.length+1)*sizeof(char)); //增加S的空间

for(j=s-length;j=pos-1;–j) //POS位置到最后的字符往后移

s-ch[j+T.length] = s-ch[j];

for(i=0;iT.length;++i) //T复制到S

{

s-ch[i+pos-1] = T.ch[i];

}

s-length = s-length + T.length;

}

void StrDelete(HString *s,int pos,int len)//S存在,从S中删除第POS个字符起长度为LEN的子串

{

int i,j;

if(pos1 || poss-length-len) //判断删除位置是否合理

printf(“delete Location error!\n”);

else

{

for(i=pos+len-1,j=0;is-length;++i,++j) //删除中间元素,后面的元素往前移

s-ch[pos-1+j] = s-ch[i];

s-length = s-length – len;

s-ch[s-length] = ‘\0’;

}

}

void Replace(HString *s,HString t,HString v) //将V替换掉S中的T

{

int i;

i = Index(*s,t,1);

while(i0)

{

StrDelete(s,i,t.length);

StrInsert(s,i,v);

i = Index(*s,t,1);

}

}

void display(HString s)

{

printf(“the string is :%s\n”,s.ch);

}

int main(void)

{

HString obj,obj2,obj3,obj4;

obj.ch = NULL;//(char*)malloc(sizeof(char));

obj2.ch = NULL;

obj3.ch = NULL;

obj4.ch = NULL;

StrAssign(obj,”august”);

StrAssign(obj2,”yx”);

StrAssign(obj4,”ax”);

display(obj);

display(obj2);

SubString(obj3,obj,3,3);

display(obj3);

StrInsert(obj3,1,obj2);

display(obj3);

Replace(obj3,obj2,obj4);

display(obj3);

StrDelete(obj3,1,3);

display(obj3);

return 0;

}

// 希望能够帮到你

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月29日 00:42:16
下一篇 2024年3月29日 00:49:25

相关推荐

  • c语言改写模式,c语言实现修改功能

    c语言程序修改? 1、这个程序有4个错误,我都加粗了,第一个是m没有赋初值,第二个是while表达式中的ch=getchar()需要括号括起来,第三个是m=m*10+ch-0中的0也需要用单引号括起来,第四个是第2个while中为m!=0。 2、define容易造成误会,因为不符合一般的编程习惯,false 0, true 1;scanf放在你的那个地方是达…

    2024年5月23日
    3900
  • c语言控制代码的换码序列,c语言交换代码

    求C语言编程大神解答一下下面这个编程代码? k==5,用5去除125余0,所以r=125%5中r为0。由于!0为1,所以执行while循环体:先打印出5(k的值),再n=n/k==125/5=25;由于251则再打印出*号。这一循环结果输出是5*。 下面是我的代码,三个函数分别对应三个问题。 在实现基本要求的前提下,拓展了可以从键盘输入的功能,以下为各题代码…

    2024年5月23日
    5600
  • c语言扫描io脚状态,c语言端口扫描

    求51单片机的上升沿和下降沿C语言检测程序列子,端口就是普通IO口。 上升沿触发是当信号有上升沿时的开关动作,当电位由低变高而触发输出变化的就叫上升沿触发。也就是当测到的信号电位是从低到高也就是上升时就触发,叫做上升沿触发。 单片机怎么计算1s内下降沿的个数的C语言程序或者计算两个下降沿的时间(检测脉冲频率)计算1s内下降沿的个数方法是,一个定时器设置定时1…

    2024年5月23日
    4400
  • c语言mallloc使用的简单介绍

    C语言中使用malloc必须加#includemallo.h? 1、在C语言中使用malloc函数进行动态内存分配。malloc的全称是memory allocation,中文叫动态内存分配。原型:extern void malloc(unsigned int num_bytes);功能:分配长度为num_bytes字节的内存块。 2、你可以看一下C语言那本…

    2024年5月23日
    4400
  • c语言三位小数,C语言三位小数

    怎样用C++语言输出精确到小数点后三位的数? 1、用C++语言输出精确到小数点后三位的数,可以参考下面给出的代码:coutsetiosflags(ios:fixed)setprecision(3)。其中 setiosflags中set是设置的意思。ios是iostream的缩写,即输入输出流。flags是标志的意思。 2、要精确到小数点后若干位,则数据类型为…

    2024年5月23日
    7200
  • c语言21点游戏,二十一点游戏代码c语言

    如何使用C语言编写简单小游戏? 1、数学知识:长方形的面积S=a*b 长方形周长L=2*(a+b)其中a b分别为长方形的宽和高。算法分析:长方形面积及周长均依赖于宽和高,所以先要输入宽高值,然后根据公式计算,输出结果即可。 2、/*也不知道你是什么级别的,我是一个新手,刚接触编程语言,以下是我自己变得一个小程序,在所有c语言的编译器(vc++0、turbo…

    2024年5月23日
    6300
  • c语言当中的null,C语言当中的符号

    C/C++中,NULL和null的区别是什么? nul 和 null要看编译器,不同的编译器有所区别。 所以C或者C++中都使用一个特殊定义NULL表示无效值,其本质就是未定义具体数据类型的0值。 null是是什么都没有的意思。在java中表示空对象。 本意是“空的;元素只有零的”意思。计算机中通常表示空值,无结果,或是空集合。\x0d\x0a在ASCII码…

    2024年5月23日
    4500
  • 包含c语言对txt文件命名的词条

    如何在C语言编程里面修改源文件名字 如果你是在WINDOWS的话,简单了,随便用个编辑器,比如记事本,然后写c源程序,保存到你想要保存的位置。如果你在DOS下,可以用edit,写好以后,按alt键,选择文件菜单,然后保存。 用open打开文件,注意操作模式使用“修改”或者“添加” 用write或者fprintf向文件中写入你的内容。 用close关闭文件。 …

    2024年5月23日
    4800
  • 学c语言编程,学c语言编程用什么软件

    编程开发必须要学C语言吗? 1、要学习。编程开发的学习内容主要包括c语言、python和c+语言。C语言作为一种简单灵活的高级编程语言,它是一个面向过程的语言,一般是作为计算机专业的基础入门语言课程。 2、C语言。对于刚接触编程的人来说,先学习C语言是非常重要的。C语言可以说是是计算机编程语言的鼻祖,其他的编程语言几乎全是由C语言变化衍生出来的。 3、不需要…

    2024年5月23日
    3400
  • c语言用string定义字符串,c语言中用string类型来处理字符串类型

    C++怎样定义定义字符串 1、第一是字符数组来表示字符串。用下面的语句声明:char a[10];C语言中字符数组与字符串的唯一区别是字符串末尾有一个结束符\0,而字符数组不需要。 2、在C中定义字符串有下列几种形式:字符串常量,char数组,char指针 字符串常量 即:位于一对双括号中的任何字符。双引号里的字符加上编译器自动提供的结束标志\0字符,作为 …

    2024年5月23日
    4300

发表回复

登录后才能评论



关注微信