weixin_52131099
weixin_52131099
采纳率33.3%
2020-12-04 21:42 阅读 3

求助大佬c语言(结构体数组问题)第一第二题代码怎么写?急急急!

50

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

12条回答 默认 最新

  • 已采纳
    jslang 天际的海浪 2020-12-04 23:23
    #include<stdio.h>
    #include<stdlib.h>
    #include<cstring>
    
    typedef struct lens {
    	float foclen;
    	float fstop;
    	char brand[30];
    } Lens; 
    
    int main()
    {
    	Lens data[10];
    	data[2].foclen = 500;
    	data[2].fstop = 2.0;
    	strcpy(data[2].brand, "Remarkata");
    	printf("%f,%f,%s",data[2].foclen,data[2].fstop,data[2].brand);
    	return 0;
    }
    
    点赞 1 评论 复制链接分享
  • jslang 天际的海浪 2020-12-04 23:24
    #include<stdio.h>
    #include<stdlib.h>
    #include<cstring>
    
    typedef struct lens {
    	float foclen;
    	float fstop;
    	char brand[30];
    } Lens; 
    
    int main()
    {
    	Lens data[10] = {
    		{445,1.8,"AAAA"},
    		{455,1.9,"BBBB"},
    		{554,2.4,"CCCC"},
    		{475,1.6,"DDDD"},
    		{374,3.0,"EEEE"},
    		{517,1.5,"FFFF"},
    		{512,2.8,"GGGG"},
    		{408,1.7,"HHHH"},
    		{398,1.8,"IIII"},
    		{416,2.6,"JJJJ"}
    	};
    	for (int i = 0; i < 10; i++)
    		printf("%f,%f,%s\n",data[i].foclen,data[i].fstop,data[i].brand);
    	return 0;
    }
    
    点赞 1 评论 复制链接分享
  • JmanCryTears 鲛人泣珠 2020-12-04 23:45

    第一题:

    typedef struct lens{
               float foclen;
               float fstop;
               char brand[30];
             }Lens;

    Lens lenss[10];//声明结构数组,长度为10
             lenss[2].foclen=500.0;
             lenss[2].fstop=2.0;
             lenss[2].brand[0]='R';
             lenss[2].brand[1]='e';
             lenss[2].brand[2]='m';
             lenss[2].brand[3]='a';
             lenss[2].brand[4]='r';
             lenss[2].brand[5]='k';
             lenss[2].brand[6]='a';
             lenss[2].brand[7]='t';
             lenss[2].brand[8]='a';

    第二题:

    void initStruct(Lens[]);//结构数组初始化函数

    void initStruct(Lens plenss[])
    {
              float initFoclen=500.0;
              float initFstop=1.0;
              for(int i=0;i<=9;i++)
              {
                      (plenss)[i].foclen=initFoclen;
                      (plenss)[i].fstop=initFstop;
                      (plenss)[i].brand[0]='C';
                      (plenss)[i].brand[1]='a';
                      (plenss)[i].brand[2]='n';

                       (plenss)[i].brand[3]='o';
                      (plenss)[i].brand[4]='n';
                      initFoclen++;
                      initFstop++;

              }

    }

     

     

    点赞 1 评论 复制链接分享
  • JmanCryTears 鲛人泣珠 2020-12-04 22:11

    第一题答案:

    typedef struct lens{
                       float foclen;
                       float fstop;
                       char brand[30];

             }Lens;
             Lens lens[10];
             lens[2].foclen=2.0;
             lens[2].fstop=500.0;
             lens[2].brand[0]='R';
             lens[2].brand[1]='e';
             lens[2].brand[2]='m';
             lens[2].brand[3]='a';
             lens[2].brand[4]='r';
             lens[2].brand[5]='k';
             lens[2].brand[6]='a';
             lens[2].brand[7]='t';
             lens[2].brand[8]='a';

    点赞 评论 复制链接分享
  • weixin_52131099 weixin_52131099 2020-12-04 22:27

    错了,运行都运行不了

     

    点赞 评论 复制链接分享
  • JmanCryTears 鲛人泣珠 2020-12-04 22:42

    这段代码只是对于结构的声明,是不能执行的,是为第二题做铺垫的。

    点赞 评论 复制链接分享
  • weixin_52131099 weixin_52131099 2020-12-04 22:49

    foclen对应的是500不是吗

    点赞 评论 复制链接分享
  • JmanCryTears 鲛人泣珠 2020-12-04 23:00

    看花眼了,我修改一下,连第二题一块贴给你

    点赞 评论 复制链接分享
  • JmanCryTears 鲛人泣珠 2020-12-04 23:08

    题目一与二完整代码如下,已经验证,完全可行

    #include<stdio.h>
    #include<math.h>
    //结构定义
     typedef struct lens{
               float foclen;
               float fstop;
               char brand[30];
             }Lens;
    void initStruct(Lens[]);//结构数组初始化函数
    int main()
    {

             Lens lenss[10];//声明结构数组,长度为10
             lenss[2].foclen=500.0;
             lenss[2].fstop=2.0;
             lenss[2].brand[0]='R';
             lenss[2].brand[1]='e';
             lenss[2].brand[2]='m';
             lenss[2].brand[3]='a';
             lenss[2].brand[4]='r';
             lenss[2].brand[5]='k';
             lenss[2].brand[6]='a';
             lenss[2].brand[7]='t';
             lenss[2].brand[8]='a';

             initStruct(lenss);
            //printf("%f\n%f\n",lenss[0].foclen,lenss[0].fstop);/*此语句用来验证初始化函数是否正确有效*/
             return 0;
    }
    void initStruct(Lens plenss[])
    {
              float initFoclen=500.0;
              float initFstop=1.0;
              for(int i=0;i<=9;i++)
              {
                      (plenss)[i].foclen=initFoclen;
                      (plenss)[i].fstop=initFstop;
                      (plenss)[i].brand[0]='C';
                      (plenss)[i].brand[1]='a';
                      (plenss)[i].brand[2]='n';

                       (plenss)[i].brand[3]='o';
                      (plenss)[i].brand[4]='n';
                      initFoclen++;
                      initFstop++;

              }

    }

     

    点赞 评论 复制链接分享
  • JmanCryTears 鲛人泣珠 2020-12-04 23:14

    上面的代码就是两个题目的完整答案,编译运行正常,你可以亲自试试

    点赞 评论 复制链接分享
  • JmanCryTears 鲛人泣珠 2020-12-04 23:15

    如果有疑问可以私信我

    点赞 评论 复制链接分享
  • weixin_52131099 weixin_52131099 2020-12-04 23:20

    是从return 0那里断吗 下面是第二题?

     

    点赞 评论 复制链接分享

相关推荐