Zijeak 2018-11-25 03:14 采纳率: 33.3%
浏览 545
已采纳

【C语言】结构体数据处理异常问题

每个城市信息由城市名(字符串)和位置坐标组成(x,y)。设计实现一程序,完成如下功能:
(1)从键盘或文件输入各城市信息
(2)按城市名字非递减排序后输出
(3)输入某个位置信息,查询该位置的城市名称,要求能多次查询。

 #include <stdio.h>
#include <stdlib.h>

#define MAXSIZE 20

typedef char ElemType; 
struct info
{
    ElemType name[MAXSIZE];
    int x;
    int y;
};

int main()
{
    struct info city[MAXSIZE];
    //从键盘输入信息
    int i=0,count=0;
    printf("请输入城市名和位置坐标x,y,以空格键隔开(输入“q 0 0”以结束):");
    while((scanf("%s %d %d",city[i].name,&city[i].x),&city[i].y)!=0)
    {
        if(i>=MAXSIZE)
        {
            printf("超出最大输入个数!");
            break;
        }
        if(strcmp(city[i].name,"q")==0)
         break;
        i++;
        count++;
        printf("请输入城市名和位置坐标x,y,以空格键隔开:");
    } 

    //排序
    int m,n;
    struct info temp;
    for(m=0;m<count-1;m++)
    {
        for(n=0;n<count-m-1;n++)
        {
            if(strcmp(city[n].name,city[n+1])>0) 
            {
                temp=city[n];
                city[n]=city[n+1];
                city[n+1]=temp;
            }
        }
    }

    //按非递减顺序输出
    for(i=0;i<count;i++)
    {
        printf("%s  %d  %d  \n",city[i].name,city[i].x,city[i].y);
    } 


    //查询
    int x,y;
    printf("请输入您要查找的位置坐标x,y,之间以空格隔开,以“q q”结束操作:");
    while(scanf("%d %d",&x,&y)!=0)
    {
        for(i=0;i<count;i++)
        {
            if(x==city[i].x&&y==city[i].y)
             {
                printf("\n您要查找的城市为 %s ",city[i].name);
                break;
             }
            else if(i==count-1)
            {
                printf("\n未找到匹配的城市!");
            }
        }
    } 
    printf("\n感谢您的使用,再见!");

    return 0;
}

代码运行正常,排序、查找功能都正常,但输入数据后,输出(打印在屏幕上)的数据坐标y全部变为0,请问这是怎么回事,看了很久没有看出来

  • 写回答

1条回答 默认 最新

  • qq_38615562 2018-11-25 06:19
    关注

    while((scanf("%s %d %d",city[i].name,&city[i].x),&city[i].y)!=0) 这句的city[i].x后面怎么有个括号

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?