addendum777 发表于 2022-6-7 15:01:54

求帮助

求帮助,不会写

jhq999 发表于 2022-6-7 15:47:37

本帖最后由 jhq999 于 2022-6-7 17:10 编辑

纯手写,只是个思路
1、
typedef struct STUDENT
{
        float hl,np,avg;
       
}STT,*pSTT;
STT st={0};
输入计算
排序
FILE *fp=fopen(.........);
fwrite(st,sizeof(STUDENT)*5,1,fp);
fclose(fp);
2、
void stradd(char* s,char* t,int *f)
{
        int i=0,j=0;
        while(s)i++;
        while((s=t))i++,j++;
        *f=i;
}
int strnew(char* s,char* a,char* b)
{
        int i=0,j=0,k=0,count=0,slen=0,alen=0,blen=0;///slen是 s长度, alen 是a长度, blen 是b长度
        for(i=0;s;i++)//找出s多少个a
        {
                if(s==a)
                {
                        for(j=0;a&&a==s;j++);////如果在a循环结束之前a不等于s就不是
                        if('\0'==a)alen=j,count++;/////a在a结束全都等于s,那么这段就是,count统计a在s的数量,alen是顺便得出的a的长度
                }
        }
        slen=i;
        for(i=0;b;i++);
        blen=i;
        char *tmp=(char*)malloc(count*(blen-alen)+slen+1);
        for(i=0,k=0;s;i++,k++)
        {
                if(s==a)
                {
                        for(j=0;a&&a==s;j++);
                        if('\0'==a)
                        {
                                for(j=0;b;j++)tmp(k++)=b;
                        }
                }
                i+=alen;
                tmp=s;
        }
        tmp='\0';
        for(i=0;tmp;i++)s=tmp;
        s='\0';
        free(tmp);
        return i;
}

临时号 发表于 2022-6-7 17:01:10

stradd(s,t,f)中f为标志是什么意思

xueCxueCxueJava 发表于 2022-6-7 18:46:27

{:10_256:}

傻眼貓咪 发表于 2022-6-7 19:30:16

临时号 发表于 2022-6-7 17:01
stradd(s,t,f)中f为标志是什么意思

我觉得是:
当 f = 0 时,字符串 s 并置到字符串 t 后,
当 f = 1 时,字符串 t 并置到字符串 s 后 。

f 应该是 front 吧,或 flag?

kerln888 发表于 2022-6-7 20:26:27

{:10_256:}{:10_256:}学习了

leletatann 发表于 2022-6-8 07:24:39

指针还不是很熟,主要是拿鱼币{:10_254:},鱼币不够用了{:10_266:}

新手入场 发表于 2022-6-8 08:51:47

+1

豆嘉木 发表于 2022-6-9 09:14:55

{:10_245:}

1molHF 发表于 2022-6-9 14:01:45

学习了

AiXueXiDeDai 发表于 2022-6-10 06:21:55

结构体那个就正常用个排序法,文件的不太清楚,不能用strcpy就用循环在第三个数组把前两个写进去,结束循环记得加上一个\0
页: [1]
查看完整版本: 求帮助