Indigo_code 2024-04-06 17:05 采纳率: 0%
浏览 6

C语言编程解决门禁问题

#C语言,为什么只有最后一个数字输出的结果不对。谢谢大佬

#include <stdio.h>

int main()
{
    int n, i, j;
    scanf("%d", &n);
    int arr1[1001] = { 0 };
    int arr2[1001] = { 0 };
    for (i = 0; i < n; i++)
    {
        scanf("%d", &arr1[i]);
    }
    for (i = 0; i < n; i++)
    {
        int count = 0;
        for (j = 0; j < i + 1; j++)
        {
            if (arr1[i] == arr1[j])
            {
                count++;
            }
        }
        arr2[i] = count;
    }
    for (i = 0; i < n; i++)
    {
        printf("%d ", arr2[i]);
    }
    return 0;
}

涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,得到每一条记录中的读者是第几次出现。
评测用例规模与约定:1n1000,给出的数都是不超过1000的非负整数。

输入格式:
输入的第1行包含一个整数n,表示涛涛的记录条数;第2行包含n个整数,依次表示涛涛的记录中每位读者的编号。

输出格式:
输出一行,包含n个整数,由空格分隔,依次表示每条记录中的读者编号是第几次出现。

输入样例:
5
1 2 1 1 3
输出样例:
1 1 2 3 1
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
  • 写回答

2条回答 默认 最新

  • 关注

    下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    问题:C语言编程解决门禁问题,为什么只有最后一个数字输出的结果不对?

    解决方案:

    1. 输入读者的记录数据,以及数组的长度;

    2. 用数组arr1来存储读者的记录编号;

    3. 用数组arr2来存储每一条记录中的读者是第几次出现,先全部初始化为0;

    4. 用双重循环来处理记录数据,外层循环控制读者的记录条数,内层循环则控制在前i个记录中,有几次出现了读者的编号,如果出现了,则计数器加一;

    5. 当内层循环结束后,将计数器的值赋给数组arr2的第i个元素;

    6. 最后,遍历数组arr2,输出其中的每个元素。

    修改后的代码如下:

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月6日

悬赏问题

  • ¥15 使用MATLAB进行余弦相似度计算加速
  • ¥15 服务器安装php5.6版本
  • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
  • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
  • ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
  • ¥15 arcgis处理土地利用道路 建筑 林地分类
  • ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
  • ¥100 寻会做云闪付tn转h5支付链接的技术
  • ¥15 DockerSwarm跨节点无法访问问题
  • ¥15 使用dify通过OpenAI 的API keys添加OpenAI模型时报了“Connection Error”错误