| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1518 人关注过本帖
标题:如果是红色部分,就可以出来我想要的结果。可是如何能不加“0”,直接出来结 ...
只看楼主 加入收藏
wfztwq
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-12-25
结帖率:50%
收藏
 问题点数:0 回复次数:5 
如果是红色部分,就可以出来我想要的结果。可是如何能不加“0”,直接出来结果呢? 请指教。


#include <stdio.h>

struct data

{
  int thr;
  int f[3];

}ht[20]={

124,
145,
234,
315,
354,
453,
561,
613,
631,
651,

/*

124,0,0,0,
145,0,0,0,
234,0,0,0,
315,0,0,0,
354,0,0,0,
453,0,0,0,
561,0,0,0,
613,0,0,0,
631,0,0,0,
651,0,0,0,



*/



};
如果是红色部分,就可以出来我想要的结果。可是如何能不加“0”,直接出来结果呢? 请指教。


void main()

{

int i,j;


for(i=0;i<20;i++)
{
     
          ht[i].f[0]=ht[i].thr/10;
          ht[i].f[1]=(ht[i].thr/100)*10+ht[i].thr%10;
          ht[i].f[2]=ht[i].thr%100;
        
         }


         
for(i=0;i<20;i++)         
         
printf("%d ,%d ,%d\n ", ht[i].f[0],ht[i].f[1],ht[i].f[2]);
         
         
}

[此贴子已经被作者于2018-2-26 10:15编辑过]

搜索更多相关主题的帖子: 结果 int for i++ printf 
2018-02-26 09:39
kin3z
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:157
专家分:390
注 册:2011-4-24
收藏
得分:0 
程序代码:
#include <stdio.h>

struct data { 
  int thr;
  int f[3];

} ht[5]={

124,{},    //去掉大括号再试试,你就明白了。也可以把大括号换成 {1,2,3}
145,{},
234,{},
315,{},
354,{},
/*
124,1,2,3,
145,0,0,0,
234,0,0,0,
315,0,0,0,
354,0,0,0,
*/
};

int main(int argc, char **argv)
{
    printf("thr %d ,f %d %d %d\n",ht[0].thr,ht[0].f[0],ht[0].f[1],ht[0].f[2]);
    return 0;
}
2018-02-26 14:20
wfztwq
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-12-25
收藏
得分:0 
回复 2楼 kin3z
非常感谢您的回复。我试了还是不行,我是在VC++6.0下,运行C,可能有点不一样。
其实我想只输入“thr”,然后拆分它,进行运算。想只输入“thr”,然后把拆分的数放在f[3]内。
2018-02-26 14:56
kin3z
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:157
专家分:390
注 册:2011-4-24
收藏
得分:0 
回复 3楼 wfztwq
数组的初始化赋值是连续的,例如a[4] = {1,2,}; 里面的 a[0] = 1 , a[1] = 2 , a[2] = 0 , a[3] = 0 ;
当结构体初始化赋值也一样,按赋值列表一个一个来的,所以你想跳过某些特定位置的元素是不可以的。但你可以先声明,再在程序的代码块你去实现,例如for循环对特定元素赋值。
不过,突发奇想,这样尝试了一下,结果可以了。。。。

程序代码:
#include <stdio.h>

struct data { 
  int thr;
  int f[3];

} ht[5]={

{124},    //这里的意思是,数组ht[0]结构体的第一个元素赋值124,就没有之后的了
{145},    //这里指的是下一个数组结构体ht[1],也一样给第一元素赋值145,之后就没有之后的事了
{234},
{315},
{354},
/*
124,1,2,3,
145,0,0,0,
234,0,0,0,
315,0,0,0,
354,0,0,0,
*/
};

int main(int argc, char **argv)
{
    printf("thr %d ,f %d %d %d\n",ht[0].thr,ht[0].f[0],ht[0].f[1],ht[0].f[2]);
    return 0;
}




[此贴子已经被作者于2018-2-26 15:29编辑过]

2018-02-26 15:25
wfztwq
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-12-25
收藏
得分:0 
回复 4楼 kin3z
非常感谢指导,方法可以。
2018-02-27 09:24
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
收藏
得分:0 
你定义的
程序代码:
struct data

{
  int thr;
  int f[3];

}
所以在后面结构体数组的结构就必定是 thr,f0 f1 f2; 所以你后面有0 0 0才能成立。
2018-02-27 19:12
快速回复:如果是红色部分,就可以出来我想要的结果。可是如何能不加“0”,直接 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018627 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved