王维来 2015-04-09 00:32 采纳率: 25%
浏览 1671

为何C程序编译通过,运行结果却是错的

#include
#include
#include
/*并行计算值:y1=3*x1^2+7*a1*b1+c1(寿命为1);y2=3*x2^2+7*a2*b2+c2(寿命为1);y3=3*x3^2+7*a3*b3+c3(寿命为5);*/
typedef struct _mytask
{
struct _coefficient
{
unsigned int a;
unsigned int b;
unsigned int c;
}co;
struct _variable
{
unsigned int x;
unsigned long y;
}v;
}mytask;
#define THREAD_OVER -1
#define THREAD_NOTOVER 0
char mythread(mytask task,unsigned int process)
{
unsigned int z;
int ret=0;
switch(process)
{
case 0:
task.v.x=rand();
task.v.y=3;
break;
case 1:
task.v.y*=task.v.x;
task.v.y*=task.v.x;
break;
case 2:
z=7;
z*=task.co.a;
break;
case 3:
z*=task.co.b;
z*=task.v.x;
break;
case 4:
task.v.y+=z;
task.v.y+=task.co.c;
}
process++;
if (process>4)
{
printf("%ld\n",task.v.y);
ret=-1;
process=0;
system("pause");
}
return ret;
}
mytask task1,task2,task3;
void inittask(mytask task,unsigned int a,unsigned int b,unsigned int c)
{
task.co.a=a;
task.co.b=b;
task.co.c=c;
}
void main(void)
{
unsigned int istask_1_living=1;
unsigned int task1_tread_process=0;
unsigned int istask_2_living=1;
unsigned int task2_tread_process=0;
unsigned int istask_3_living=5;
unsigned int task3_tread_process=0;
inittask(task1,9,7,18);
inittask(task2,4,13,16);
inittask(task3,2,24,3);
while (1)
{
if(istask_1_living)
{
istask_1_living+=mythread(task1,task1_tread_process);
}
if(istask_2_living)
{
istask_2_living+=mythread(task2,task2_tread_process);
}
if(istask_3_living)
{
istask_3_living+=mythread(task3,task3_tread_process);
}
}
}

  • 写回答

3条回答 默认 最新

  • shiter 人工智能领域优质创作者 2015-04-09 01:34
    关注

    你这个要计算个啥?编译通过,还有可能是逻辑出现了问题

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。