王维来 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
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)