c语言40行代码,c语言400行代码大作业

本文目录一览:

求C语言编程例子40行的

因为我是学习计算机软件专业的,故对编写程序有着很深的体会。

对于 C 语言编程(或者是其它任何编程语言)来说,绝对不能够仅仅以编写源程序的行数多少作为衡量程序好坏的标准(仅仅是在凑行数)。而是必须要以程序结构的可读性、清晰性的好坏作为编程源代码好坏的标准。

谁帮我写一个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;

}

// 希望能够帮到你

求c语言程序源代码,主题随便,尽量超过40行!谢谢!!

#includestdio.h

#define

N

31

typedef

struct

{

long

num;

//学号

int

score;

//成绩

}Student;

void

sort(Student

stu[]);//排序函数

void

insert(Student

stu[],Student

stu1);//插入函数

void

count(Student

stu[]);//计算总分及平均分

void

search(Student

stu[],long

num);//查询函数

main()

{

Student

stu[N],stu1;

int

i;

long

num;

printf(“输入30位学生的学号

成绩:\n”);

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

scanf(“%ld%d”,stu[i].num,stu[i].score);

sort(stu);

printf(“输入欲插入的学生的学号

成绩:\n”);

scanf(“%ld%d”,stu1.num,stu1.score);

insert(stu,stu1);

count(stu);

printf(“输入欲查询的学生学号:”);

scanf(“%ld”,num);

search(stu,num);

}

void

sort(Student

stu[])

{

int

i,j;

Student

t;

//冒泡法排序

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

for(j=0;jN-1-i;j++)

if(stu[j].scorestu[j+1].score)

{t=stu[j];

stu[j]=stu[j+1];

stu[j+1]=t;}

//打印排序后的信息

printf(“名次

学号

成绩\n”);

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

printf(“第%d名

%-6ld%-6d\n”,i+1,stu[i].num,stu[i].score);

}

void

insert(Student

stu[],Student

stu1)

{

int

i,j;

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

{

if(stu1.scorestu[i].score)

{

for(j=N-1;ji;j–)

stu[j]=stu[j-1];

stu[i]=stu1;

break;

}

stu[N-1]=stu1;

}

//打印插入后的信息

printf(“名次

学号

成绩\n”);

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

printf(“第%d名

%-6ld%-6d\n”,i+1,stu[i].num,stu[i].score);

}

void

count(Student

stu[])

{

long

sum=0;

int

i;

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

sum+=stu[i].score;

printf(“总分:%-3ld\n平均分:%-3ld\n”,sum,sum/N);

}

void

search(Student

stu[],long

num)

{

int

i;

printf(“名次

学号

成绩\n”);

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

{

if(num==stu[i].num)

{printf(“第%d名

%-6ld%-6d\n”,i+1,stu[i].num,stu[i].score);

return;

}

}

printf(“无此学生\n”);

}

求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;

}

c语言100行简单一点的代码

登录幼儿园200个小朋友的数据:姓名、性别、年龄、身高、体重、出生日期,分别按年龄排序后输出。

#includestdio.h

#define N 200

struct child

{

char name[10];

char sex[3];

int age;

int height;

float weight;

struct {

int year;

int month;

int day;

}bdate;

}ch[N];

void input()

{

int i;

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

{

printf(“\n请输入第%d名小朋友信息:\n”,i+1);

printf(“姓名:”);

scanf(“%s”,ch[i].name);

printf(“性别:”);

scanf(“%s”,ch[i].sex);

printf(“年龄:”);

scanf(“%d”,ch[i].age);

printf(“身高:”);

scanf(“%d”,ch[i].height);

printf(“体重:”);

scanf(“%f”,ch[i].weight);

printf(“出生日期[YYYY-MM-DD]:”);

scanf(“%d-%d-%d”,ch[i].bdate.year,ch[i].bdate.month,ch[i].bdate.day);

}

}

void sort()

{

struct child ct;

int i,j;

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

for(j=0;jN-i-1;j++)

if(ch[j].heightch[j+1].height)

{

ct=ch[j];

ch[j]=ch[j+1];

ch[j+1]=ct;

}

}

void output()

{

int i;

printf(“\n\t幼儿园小朋友一览(依身高排序)\n”);

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

printf(” 姓名 性别 年龄 身高 体重 出生日期 \n”);

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

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

printf(” %-8s %-2s %2d %d %3.1f %d.%d.%d\n”,ch[i].name,ch[i].sex,ch[i].age,ch[i].height,ch[i].weight,ch[i].bdate.year,ch[i].bdate.month,ch[i].bdate.day);

}

void main()

{

input();

sort();

output();

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/182528.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-24 06:22
下一篇 2024-11-24 06:22

相关推荐

  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python字符串宽度不限制怎么打代码

    本文将为大家详细介绍Python字符串宽度不限制时如何打代码的几个方面。 一、保持代码风格的统一 在Python字符串宽度不限制的情况下,我们可以写出很长很长的一行代码。但是,为了…

    编程 2025-04-29
  • Python基础代码用法介绍

    本文将从多个方面对Python基础代码进行解析和详细阐述,力求让读者深刻理解Python基础代码。通过本文的学习,相信大家对Python的学习和应用会更加轻松和高效。 一、变量和数…

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • 仓库管理系统代码设计Python

    这篇文章将详细探讨如何设计一个基于Python的仓库管理系统。 一、基本需求 在着手设计之前,我们首先需要确定仓库管理系统的基本需求。 我们可以将需求分为以下几个方面: 1、库存管…

    编程 2025-04-29
  • 写代码新手教程

    本文将从语言选择、学习方法、编码规范以及常见问题解答等多个方面,为编程新手提供实用、简明的教程。 一、语言选择 作为编程新手,选择一门编程语言是很关键的一步。以下是几个有代表性的编…

    编程 2025-04-29
  • Python实现简易心形代码

    在这个文章中,我们将会介绍如何用Python语言编写一个非常简单的代码来生成一个心形图案。我们将会从安装Python开始介绍,逐步深入了解如何实现这一任务。 一、安装Python …

    编程 2025-04-29
  • 怎么写不影响Python运行的长段代码

    在Python编程的过程中,我们不可避免地需要编写一些长段代码,包括函数、类、复杂的控制语句等等。在编写这些代码时,我们需要考虑代码可读性、易用性以及对Python运行性能的影响。…

    编程 2025-04-29

发表回复

登录后才能评论