Deep rever 2022-12-04 19:21 采纳率: 100%
浏览 100
已结题

两天内求c语言问题解决一个程序

1、开发一个程序,用户从键盘输入英文单词,程序要返回该单词对应的数值.规则是A/a的值是1, B/b的值是2, C/c的值是3,Z/z的值是26.如果用户输入的单词的和为100,那么就显示恭喜你成功找到了这个单词的信息。要求如下:
要求先给出求解思路
要求用到数组;
要写一个函数去返回单词对应的数值;
要求检查用户输入的内容为单词,不能是数字字符或其它字符,只能是大小写字母;
程序终止条件:用户选择停止程序或用户正确提交了值为100的单词,否则,程序将继续要求用户输入新单词。

2、搜索引擎接收到输入的关键词之后会返回结果列表,每条结果记录包含内容和匹配度两个信息。一般情况,检索结果的匹配度得分越高排在越靠前的位置,请编写程序按匹配度由高往低排序。结果匹配度得分样本如下表所示:
内容 匹配度
T1 0.77
T2 0.68
T3 0.99
T4 0.88
样本数据可以采用控制台输入的方式导入程序。排序后,输出结果如下:
内容 匹配度
T3 0.99
T4 0.88
T1 0.77
T2 0.68
要求采用结构体表示单条结果记录。
要求:
2.1 要求先给出求解思路
2.2 要求用到结构体数组或动态分配

  • 写回答

2条回答 默认 最新

  • 人才程序员 2022-12-04 21:11
    关注

    题1、
    我们可以使用while(1)去接收用户输入的数字,如果>=100则退出循环,如果没有,继续执行.
    判断AZ:根据asiil码表,AZ为6590,az为97~122,则我们可以在函数中去判断有没有他们
    有的话:
    1)、大小字母:c%64
    2)、小写字母:c%96
    代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    
    int Input(char c)
    {
        int ret = 0;
        if (c >= 65 && c <= 90)
        {
            ret += c % 64;
        }
        else if (c >= 97 && c <= 122)
        {
            ret += c % 96;
        }
    
        return ret;
    }
    
    int main()
    {
        printf("输入字母:");
        int input_c = 0;
    
        while (1)
        {
            char c = '\0';
            c = _getch();
            printf("%c", c);
    
            input_c += Input(c);
            if (input_c >= 100)
            {
                printf("恭喜,输入到了100\n");
                break;
            }
        }
    
    
        system("pause>0");
        return 0;
    }
    
    题2、
    
    ```c
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    
    int Input(char c)
    {
        int ret = 0;
        if (c >= 65 && c <= 90)
        {
            ret += c % 64;
        }
        else if (c >= 97 && c <= 122)
        {
            ret += c % 96;
        }
    
        return ret;
    }
    
    int main()
    {
        printf("输入字母:");
        int input_c = 0;
    
        while (1)
        {
            char c = '\0';
            c = _getch();
            printf("%c", c);
    
            input_c += Input(c);
            if (input_c >= 100)
            {
                printf("恭喜,输入到了100\n");
                break;
            }
        }
    
    
        system("pause>0");
        return 0;
    }
    
    
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    struct Result
    {
        char* information;
        int about_this;
        double persent;
    };
    
    struct Result* Search(char *str,char *input,int count)
    {
        struct Result *ret = malloc(sizeof(struct Result));
        int r = strlen(input);
    
        ret->about_this = 0;
        ret->information = str;
    
        for (int i = 0; i <= r; i++)
        {
            if (str[i] == input[i])
                ret->about_this++;
        }
    
        return ret;
    }
    
    int main()
    {
        char* information[4] = { "Dev C++","C","Visual Studio CCC","You CAB" };
        printf("输入要查找的内容:");
        char str[1000] = { "\0" };
        scanf_s("%s", str,1000);
    
        struct Result t[4];
        struct Result* r[4] = { &t };
        
        r[0] = Search(information[0], str, 0);
        r[1] = Search(information[1], str, 1);
        r[2] = Search(information[2], str, 2);
        r[3] = Search(information[3], str, 3);
    
    
        struct Result *temp;
        for (int i = 0; i < 4; i++)
        {
            for (int j = 0; j < 4-i; j++)
            {
                if (r[j] > r[j + 1])
                {
                    temp = r[j];
                    r[j] = r[j] + 1;
                    r[j + 1] = temp;
                }
            }
        }
    
    
        double Persent[4] = { 0.99,0.88,0.77,0.68 };
        for (int i = 0; i < 4; i++)
        {
            if (r[i]->about_this != 0)
            {
                r[i]->persent = Persent[i];
            }
            else
            {
                r[i]->persent = 0.00;
            }
        }
    
        for (int i = 0; i < 4; i++)
        {
            printf("信息:%s ,匹配度:%lf", r[i]->persent);
        }
    
        system("pause>0");
        return 0;
    }
    
    

    ```

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月5日
  • 已采纳回答 12月5日
  • 创建了问题 12月4日

悬赏问题

  • ¥30 为什么会失败呢,该如何调整
  • ¥50 如何在不能联网影子模式下的电脑解决usb锁
  • ¥20 服务器redhat5.8网络问题
  • ¥15 如何利用c++ MFC绘制复杂网络多层图
  • ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变
  • ¥15 python螺旋图像
  • ¥15 算能的sail库的运用
  • ¥15 'Content-Type': 'application/x-www-form-urlencoded' 请教 这种post请求参数,该如何填写??重点是下面那个冒号啊
  • ¥15 找代写python里的jango设计在线书店
  • ¥15 请教如何关于Msg文件解析