m0_73645082 2022-11-09 19:02 采纳率: 80%
浏览 80
已结题

关于一个C语言传参数输出参的问题咋整

问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
运行结果及报错内容
#include <stdio.h>
#include <cstring>

typedef  struct st_c
{
    char ch;
    int num;
}cHp;
void sort(cHp *pi,int a)
{
    cHp*p0=pi;
    cHp* pj;
    cHp temp;
    for(pi=p0; pi-p0<a-1; ++pi)
    {
        for(pj=pi; pj-p0<a-1; ++pj)
        {
            for(pj=pi;pj-p0<a-1;++pj)
            {
                if(pj->num>(pj+1)->num)
               temp=*pj;
                *pj=*(pj+1);
                *(pj+1)=temp;
            }
        }
    }
}
void trans(cHp *pi,int a,int *ptt)
{
    cHp *pj=pi;
    int *Ptt;
    int i=0;
    for( i=0; i<a; i++,++pj,++ptt)
    {
        pj->ch=i;
        pj->num=*Ptt;
    }
}
void wen()
{
    char s[255];
    memset(s, 0, sizeof(s));
    int t[255] = {0};
    cHp arr[255];
    char ch;
    gets(s);
    FILE *fp;
    fp = fopen(s, "r");
    if (fp == NULL)
    {
        printf("error!\n");
    }
   else
   {
        while (fscanf_s(fp, "%c", &ch, 1) == 1)
        {
            if (ch < 'z' && ch > 'a')
            {
                t[ch - 32]++;
            } else
            {
                t[ch]++;
            }
        }
    }
    fclose(fp);
    trans(arr, 255, t);
    sort(arr, 255);
}

int main()
{
    int t[255] = {0};
    int *pt=&[0];
    cHp arr[255];
    memset(arr, 0, sizeof(cHp));
    wen();
    for(int i=0;i<255;i++)
    {
            if(arr[i].ch==32)
            {
                printf("%s: %d\n", "0x20", arr[i].num);
            }
            else
            {
                printf("%c: %d\n", arr[i].ch, arr[i].num);
            }
    }
    return 0;
}




我想要达到的结果

想要在wen这个函数中调用sort和trans两个函数然后在主函数中调用wen函数,就是三十九行和七十七行这块这个wen函数中的参数该怎么传那几个参呢,调用的参数该传哪几个有点迷糊了,各位帮忙看一下如果那里有其他问题帮忙改一下,谢谢,原题是文本文件里查找字符出现次数并排序的

  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2022-11-09 19:33
    关注
    #include <stdio.h>
    #include <cstring>
     
    typedef  struct st_c
    {
        char ch;
        int num;
    }cHp;
    void sort(cHp *pi,int a)
    {
        cHp*p0=pi;
        cHp* pj;
        cHp temp;
        for(pi=p0; pi-p0<a-1; ++pi)
        {
            for(pj=pi; pj-p0<a-1; ++pj)
            {
                for(pj=pi;pj-p0<a-1;++pj)
                {
                    if(pj->num>(pj+1)->num)
                   temp=*pj;
                    *pj=*(pj+1);
                    *(pj+1)=temp;
                }
            }
        }
    }
    void trans(cHp *pi,int a,int *ptt)
    {
        cHp *pj=pi;
        int *Ptt;
        int i=0;
        for( i=0; i<a; i++,++pj,++ptt)
        {
            pj->ch=i;
            pj->num=*Ptt;
        }
    }
    void wen(cHp *arr)
    {
        char s[255];
        memset(s, 0, sizeof(s));
        int t[255] = {0};
        char ch;
        gets(s);
        FILE *fp;
        fp = fopen(s, "r");
        if (fp == NULL)
        {
            printf("error!\n");
        }
       else
       {
            while (fscanf_s(fp, "%c", &ch, 1) == 1)
            {
                if (ch < 'z' && ch > 'a')
                {
                    t[ch - 32]++;
                } else
                {
                    t[ch]++;
                }
            }
        }
        fclose(fp);
        trans(arr, 255, t);
        sort(arr, 255);
    }
     
    int main()
    {
        cHp arr[255];
        memset(arr, 0, sizeof(cHp));
        wen(arr);
        for(int i=0;i<255;i++)
        {
                if(arr[i].ch==32)
                {
                    printf("%s: %d\n", "0x20", arr[i].num);
                }
                else
                {
                    printf("%c: %d\n", arr[i].ch, arr[i].num);
                }
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月9日
  • 已采纳回答 11月9日
  • 修改了问题 11月9日
  • 赞助了问题酬金15元 11月9日
  • 展开全部

悬赏问题

  • ¥15 找一个网络防御专家,外包的
  • ¥100 能不能让两张不同的图片md5值一样,(有尝)
  • ¥15 informer代码训练自己的数据集,改参数怎么改
  • ¥15 请看一下,学校实验要求,我需要具体代码
  • ¥50 pc微信3.6.0.18不能登陆 有偿解决问题
  • ¥20 MATLAB绘制两隐函数曲面的交线
  • ¥15 求TYPCE母转母转接头24PIN线路板图
  • ¥100 国外网络搭建,有偿交流
  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案