| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 951 人关注过本帖
标题:求问:结构
取消只看楼主 加入收藏
吕宏
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2016-4-12
结帖率:86.67%
收藏
已结贴  问题点数:18 回复次数:1 
求问:结构
先说题目吧
图片附件: 游客没有浏览图片的权限,请 登录注册

这是题目范例,就是要最终得到的效果
图片附件: 游客没有浏览图片的权限,请 登录注册

我现在可以得到分部的部分就是输一个数,得到一个输出
图片附件: 游客没有浏览图片的权限,请 登录注册

#include <stdio.h>
   struct bits
   {      
   unsigned char bit0 : 1;
   unsigned char bit1 : 1;
   unsigned char bit2 : 1;
   unsigned char bit3 : 1;
   unsigned char bit4 : 1;
   unsigned char bit5 : 1;
   unsigned char bit6 : 1;
   unsigned char bit7 : 1;
 };
   union w {      struct bits a;     unsigned char t; }m;
   void f0(unsigned char bit) {      printf("The Interrupt Service Routine isr0 is called!\n"); }
   void f1(unsigned char bit) {      printf("The Interrupt Service Routine isr1 is called!\n"); }
   void f2(unsigned char bit) {      printf("The Interrupt Service Routine isr2 is called!\n"); }
   void f3(unsigned char bit) {      printf("The Interrupt Service Routine isr3 is called!\n"); }
   void f4(unsigned char bit) {      printf("The Interrupt Service Routine isr4 is called!\n"); }
   void f5(unsigned char bit) {      printf("The Interrupt Service Routine isr5 is called!\n"); }
   void f6(unsigned char bit) {      printf("The Interrupt Service Routine isr6 is called!\n"); }
   void f7(unsigned char bit) {      printf("The Interrupt Service Routine isr7 is called!\n"); }
  int main(int argc, char const *argv[])
  {    unsigned int n;
  void (*p_fun[8])(unsigned char b);
  
  scanf("%d", &n);
 
   m.t = n;
  
  p_fun[0] = f0;
  p_fun[1] = f1;
  p_fun[2] = f2;
  p_fun[3] = f3;
  p_fun[4] = f4;
  p_fun[5] = f5;
  p_fun[6] = f6;
  p_fun[7] = f7;
  if(m.a.bit0)          p_fun[0](m.a.bit0);
  if(m.a.bit1)          p_fun[1](m.a.bit1);
  if(m.a.bit2)          p_fun[2](m.a.bit2);
  if(m.a.bit3)          p_fun[3](m.a.bit3);
  if(m.a.bit4)          p_fun[4](m.a.bit4);
  if(m.a.bit5)          p_fun[5](m.a.bit5);
  if(m.a.bit6)          p_fun[6](m.a.bit6);
  if(m.a.bit7)          p_fun[7](m.a.bit7);
  
  return 0;
  }
但是在到输入全部的值出错了,直接显示无法运行,求教,这是我改的一部分代码,其他没改
 int main(int argc, char const *argv[])
  {      
  void (*p_fun[8])(unsigned char b);
  int p,q,n[10];
  scanf("%d", &q);
  for(p=1;p<=q;p++)
  {scanf("%d", n[p]);}
  for(p=1;p<=q;p++)
  {
   m.t = n[p];
  想知道错在哪里,怎么改正
这是原代码
int main(int argc, char const *argv[])
  {    unsigned int n;
  void (*p_fun[8])(unsigned char b);
  
  scanf("%d", &n);
 
   m.t = n;

搜索更多相关主题的帖子: include 
2016-05-31 09:31
吕宏
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2016-4-12
收藏
得分:0 
GG,就是一个&的问题吗
2016-05-31 09:54
快速回复:求问:结构
数据加载中...
 
   



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

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