求c语言大佬帮助!帮我写个小程序,谢谢

求c语言大佬帮助!帮我写个小程序,谢谢,第1张

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

void Init(int a[],int n) //随机生成元素取值范围在0到99的数组

void Short(int *p,int n) //用选择法对数组中的元素从小到大排序

void Print(int *p,int n) //在屏幕上输出数组各元素的值(逗号分隔)

#define N (10)

int main()

{

    int a[N],b[N],c[N*2],i

    srand(time(NULL))

    

    Init(a,N)

    Print(a,N)

    Short(a,N)

    Print(a,N)

    

    Init(b,N)

    Print(b,N)

    Short(b,N)

    Print(b,N)

    

    for(i=0i<N++i)

    {

        c[i]=a[i]

    }

    for(i=0i<N++i)

    {

        c[i+N]=b[i]

    }

    Print(c,2*N)

    Short(c,2*N)

    Print(c,2*N)

    

    return 0

}

void Init(int a[],int n)

{

    int i

    for(i=0i<n++i)

    {

        *a++=rand()%100

    }

}

void Short(int *p,int n)

{

    int i,j,t

    for(i=0i<n-1++i)

    {

        for(j=0j<n-i-1++j)

        {

            if(p[j]>p[j+1])

            {

                t=p[j]

                p[j]=p[j+1]

                p[j+1]=t

            }

        }

    }

}

void Print(int *p,int n)

{

    int i

    for(i=0i<n++i)

    {

        printf("%d%c",*p++,i<n-1?',':'\n')

    }

}

源代码如下:

#include<iostream>

#include<iomanip>

#include<string>

#include<fstream>

#include<stdio.h>

using namespace std

const   int   maxb=10000   //最多的图书

class   book//图书类

{

int   tag   //删除标记1:已删0:未删

int   number   //isbn书号

char   name[20]   //书名

char author[10]//主编

char number2[10]//版次

char position[20]//出版社

char time[20]//出版年

void   addbook(int n,char *na,char *au,char *n2,char *da,char *ti,int pr)   //增加图书  

{

tag=0

number=n

price=pr

strcpy(name,na)

strcpy(author,au)

strcpy(number2,n2)

strcpy(position,da)

strcpy(time,ti)

onshelf=1

}  

扩展资料

1、源程序中,很多符号都是成对匹配出现的,为避免遗漏必须配对使用的符号。

2、用花括号括起来的部分,但从程序结构清晰,便于阅读、理解、维护的角度出发,建议在书写程序时应遵循以下规则,以养成良好的编程习惯。

3、一个说明或一条语句占一行,与该结构开始处的左花括号对齐。

int FindSamdData(int *a, int*b, int length)

{

int i,j

for (i=0,j=0(i<length)&&(j<length))

{

while (*a <*b)//有序排列,挨个比较

{

a++

i++

}

while (*a >*b)

{

b++

j++

}

if (*a == *b) return *a

}

}

int main(void)

{

int a[ ]={1,3,5,7,9,13,15,27,29,37}

int b[ ]={2,4,6,8,10,13,14,27,29,37}

int c

c = FindSamdData(a, b ,sizeof(a))

}

增加出错的程序。出错的最好使用一个单独参数,我为了方便没有增加参数。

//有序数组查找相同数据,数组等长

//*length为0未找到相同数据,

int FindSamdData(int *a, int*b, int *length)

{

int i,j

for (i=0,j=0(i<*length)&&(j<*length))

{

while (*a <*b)//有序排列,挨个比较

{

a++

i++

if (i>=*length)break

}

while (*a >*b)

{

b++

j++

if (j>=*length)break

}

if (*a == *b)

{

*length = 1

return *a

}

}

*length = 0

return 0//

}

//数组不等长

//*al或*bl超出数组长表示出错,

int FindSamdData2(int *a, int*b, int *al, int *bl)

{

int i,j

for (i=0,j=0(i<*al)&&(j<*bl))

{

while (*a <*b)//有序排列,挨个比较

{

a++

i++

if (i>=*al) break

}

while (*a >*b)

{

b++

j++

if (j>=*bl) break

}

if (*a == *b)

{

*al = i

*bl = j

return *a

}

}

*al = i

*bl = j

return 0

}

void main(void)

{

int a[]={1,3,5,7,9,13,15,27,29,37}

int b[]={2,4,6,8,10,13,14,27,29,37}

int la = sizeof(a)

int lb = sizeof(b)

int c

c = FindSamdData(a, b ,&la)

if (la == 0) printf("No same!")

la = sizeof(a)//la会被函数 FindSamdData 修改.

c = FindSamdData2(a, b ,&la, &lb)

if ((la >=sizeof(a)) || (la >=sizeof(a))) printf("No same!")

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8090410.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存