无敌源崽 2022-12-21 15:18 采纳率: 100%
浏览 30
已结题

给电话薄排序输出错误 为什么





```#include <iostream>
#include<string.h>
using namespace std;
struct people
{
    char name[10];
    char num[10];
}a[10];
int main()
{
    int n,i,l;
    struct people t;
    cin >> n;
    for (i = 0; i < n; i++)
    {
        cin>>a[i].name;
        cin>>a[i].num;
    }
              
    for (i = 0; i < n-1; i++)
    {
        for (l = 0; l < n - i - 1; l++)
        {     
            if (strcmp(a[l].name,a[l+1].name)>0)
            {
                t = a[l+1];
                a[l+1] = a[l];
                a[l] = t;
            }
        }
    }
    for (i = 0; i < n; i++)
    {
        printf("%12s", a[i].name);
        printf("%12s\n", a[i].num);
        
    }

}****
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/040583606176189.png "#left")
  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2022-12-21 15:23
    关注

    name长度太短了,你输入名字有10个字符。而name当字符串使用,实际只能存储9个字符,最后一个字符必须存储字符串结束符。但你输入10个字符后,导致name没有字符串结束符,输出时会一直找到内存后面第一个字符串结束符为止,也就是num字符串后面的结束符。

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

报告相同问题?

问题事件

  • 系统已结题 1月1日
  • 已采纳回答 12月24日
  • 创建了问题 12月21日

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100