弥生橘 2020-04-24 15:37 采纳率: 66.7%
浏览 499
已采纳

用c/c++来编写一个程序,需要用到结构体变量,一次循环

城市信息的输入与输出(结构体)

【问题描述】编写程序,能够输入和显示若干个城市的数据记录,每个记录包括城市编号、城市名、经度、维度。建议选择自己所在地的城市、熟悉或者喜欢的城市。只用结构体变量而不用结构体数组完成,只用一个循环完成。

#include<stdio.h>
struct information
{
    char cityname;//城市名字
    int number;       //城市编号
    int longitude;    //经度
    int longitude;    //纬度
}information1;
struct information i;//结构体information的名字也为i
int main()
{

}

不知道怎么用一个循环来遍历这个结构体。

  • 写回答

1条回答 默认 最新

  • 梧桐树✯ 2020-04-25 02:35
    关注

    写一个函数直接访问结构体的成员变量就好了的!

    还有就是,你的经度纬度两个成员变量的名字一样了。
    城市名那个成员,建议用数组,因为城市名一般不会是只有一个字符,而是多个字符。

    struct information
    {
    //char cityname;//城市名字
    char cityname[10];
    int number; //城市编号
    int longitude; //经度
    int latitude; //纬度
    }information1;
    struct information i;//结构体information的名字也为i

    void test7()
    {
    //printf("城市名称:%c\n",i.cityname);
    printf("城市名称:%s\n", i.cityname);
    printf("城市编号:%d\n", i.number);
    printf("城市经度:%d\n", i.longitude);
    printf("城市纬度:%d\n", i.latitude);
    }

    //测试代码

    #include <stdio.h> 
    #include <string.h> 
    typedef struct __CITYDATA { 
        char cityname[10];//城市名字
        int number; //城市编号
        int longitude; //经度
        int latitude; //纬度 
    }CITYDATA;
    
    CITYDATA cityData[5];//定义结构体变量 
    void print(CITYDATA p[5],int num)
    {
        int i = 0;//定义数组a的下标
        printf("\n\n城市名称\t\t城市编号\t\t城市经度\t\t城市纬度\n");
        for(i = 0;i < num;i++)
        {   
            printf("%s\t\t\t%d\t\t\t%d\t\t\t%d",p[i].cityname,p[i].number,p[i].longitude,p[i].latitude); 
            printf("\n");
        }
    }
    int main() 
    { 
        int n = 0;//定义城市数量 
        int i = 0;//cityname数组的下标
        printf("输入城市数量:"); 
        scanf_s("%d",&n);
        if (n > 5)
            n = 5;
        for(i = 0;i < n;++i) 
        {
            printf("\n输入第%d个城市名称:", i + 1);
            scanf("%s",cityData[i].cityname);
            printf("\n输入第%d个城市编号:", i + 1);
            scanf_s("%d", &cityData[i].number);
            printf("\n输入第%d个城市经度:", i + 1);
            scanf_s("%d", &cityData[i].longitude);
            printf("\n输入第%d个城市纬度:", i + 1);
            scanf_s("%d", &cityData[i].latitude);
        } 
        print(cityData,n);
        return 0; 
    }
    

    展开全部

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

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部