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

关于一个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 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?
  • ¥15 关于#vue.js#的问题:修改用户信息功能图片无法回显,数据库中只存了一张图片(相关搜索:字符串)
  • ¥15 texstudio的问题,