| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 849 人关注过本帖
标题:在线求助·· 实在没办法了 小弟初学扎到不知道错在哪里
只看楼主 加入收藏
ll431
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-4-17
收藏
 问题点数:0 回复次数:8 
在线求助·· 实在没办法了 小弟初学扎到不知道错在哪里
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<malloc.h>
#define MAXS 50
 
struct Triple{
   int i,j;
   int e;
};
struct TSM {
   struct Triple data[MAXS];
   int mu,nu,tu;
};//声明结构体。


void input(struct TSM *T) //对此三元组付值
 { int r=0;

     printf("mn:  ");scanf("%d",&T->mu);

     printf("nu:  ");scanf("%d",&T->nu);

     printf("tu:  ");scanf("%d",&T->tu);

     printf("\n");

  for(r=0;r<T->tu;r++)
  {   printf("i:  ");
      scanf("%d",&T->data[r].i);
      printf("j:  ");
      scanf("%d",&T->data[r].j);
      printf("e:  ");
      scanf("%d",&T->data[r].e);
      printf("\n");
  }
 }

void  print(struct TSM *T)//输出此三元组的矩阵形势
 {int i=0,j=0,r=0;
      for(i=0;i<T->mu;i++)
      { printf("\n");
        for(j=0;j<T->nu;j++)
        {if(i==T->data[r].i&&j==T->data[r].j)
            {printf("       %d ",T->data[r].e);r++;}
         else printf("       0 ");
        }
      printf("\n");
      }
 }


void add(struct TSM *A,struct TSM *B,struct TSM *C)//对两矩阵A和B进行相加运算,利用三个IF语句实现

 { int r=0,k=0,c=0,ai,aj,bi,bj;printf("c==%d",A->data[r].e);
   if(A->mu!=B->mu||A->nu!=B->nu)
       exit(0);
   else
      C->mu=A->mu;C->nu=A->nu;
  while(r<A->tu&&k<B->tu)
       {
     ai=A->data[r].i;aj=A->data[r].j;
     bi=B->data[k].i;bj=B->data[k].j;

    if(ai<bi)
    {
     C->data[c].e=A->data[r].e;printf("c==%d,%d",A->data[r].e,c)
     C->data[c].i=A->data[r].i;
     C->data[c].j=A->data[r].j;
     r++; printf("*<* r=%d ",r);printf("k=%d ",k);
     c++;printf("c==%d,%d",A->data[r].e,c);
     }
    else if(ai==bi)
       {
        if(aj==bj)
         {
          C->data[c].e=A->data[r].e+B->data[k].e;
          C->data[c].i=A->data[r].i;
          C->data[c].j=A->data[r].j;
          r++;
          c++;
          k++;printf("*==*r=%d ",r);printf("k=%d ",k);printf("c==%d,%d",C->data[c].e,c);
          }
       else if(aj<bj)
          {
           C->data[c].e=A->data[r].e;
           C->data[c].i=A->data[r].i;
           C->data[c].j=A->data[r].j;
           r++;c++;printf("*=<*r=%d ",r);printf("k=%d ",k);
        printf("c==%d,%d",C->data[c].e,c);
           }
        else if(aj>bj)
        {
         C->data[c].e=B->data[k].e;
         C->data[c].i=B->data[k].i;
         C->data[c].j=B->data[k].j;
         k++;c++;printf("*=>*r=%d ",r);printf("k=%d ",k);
 printf("c==%d,%d",C->data[c].e,c);
         }
        }
     else  if(ai>bi)
          {
           C->data[c].e=B->data[k].e;
           C->data[c].i=B->data[k].i;
           C->data[c].j=B->data[k].j;
           k++;c++;printf("*>*r=%d ",r);printf("k=%d ",k);
printf("c==%d,%d",C->data[c].e,c);
           }
    }
  while(k<B->tu)
     {
      C->data[c].e=B->data[k].e;
      C->data[c].i=B->data[k].i;C->data[c].j=B->data[k].j;
      k++;c++;printf("*b*r=%d ",r);printf("k=%d ",k);
printf("c==%d,%d",C->data[c].e,c);
      }
  while(r<A->tu)
     {
      C->data[c].e=A->data[r].e;
      C->data[c].i=A->data[r].i;C->data[c].j=A->data[r].j;
      r++;c++;printf("*a*r=%d ",r);printf("k=%d ",k);
printf("c==%d,%d",C->data[c].e,c);
      }printf("*ziji*r=%d ",r);printf("k=%d ",k);
printf("c==%d,%d",C->data[c].e,c);
}

void main()
{struct  TSM *A,*B,*C;int q=0;
 clrscr();
 printf(" =========the game begin==========\n");
 memset(A,0,sizeof(struct TSM));
 memset(B,0,sizeof(struct TSM));
 memset(C,0,sizeof(struct TSM));
 
 input(A);
 printf("\n A= \n");
 print(A);
[bo]for(;q<A->tu;q++)printf("%d%d",A->data[q].i,A->data[q].j);[/bo]
 printf("\n");
 input(B);
 printf("\n B= \n");
 print(B);
 printf("\n");
 add(A,B,C);
 printf("\n so have A+B= \n");
 print(C);
 printf("\n =========the game over==========");
}
只要加上另颜色的段,程序就正确,没的话就···
现在问题是找到了 但却不知道这是为什么?

[[it] 本帖最后由 ll431 于 2008-4-25 23:29 编辑 [/it]]
搜索更多相关主题的帖子: 三元 printf TSM 
2008-04-23 23:36
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
收藏
得分:0 
用来做什么的?一句注释都没有?汗!

GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-04-24 21:32
jasjac
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2008-3-24
收藏
得分:0 
干什么用的,有什么问题?
2008-04-25 09:38
jasjac
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2008-3-24
收藏
得分:0 
clrscr();
clrscr();你用的VC6吧,VC中没有这个函数,用TC试下
2008-04-25 09:43
jasjac
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2008-3-24
收藏
得分:0 
#include<memory.h>
clrscr()换成system("cls")
但是代码运行有问题哦,可以编译过!
2008-04-25 09:55
ll431
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-4-17
收藏
得分:0 
不好意思···

我这是利用三元组压缩矩阵,并对两稀疏矩阵进行相加··

我是在TC上运行的  程序没显示出错误 就是结果出错··
2008-04-25 12:48
ll431
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-4-17
收藏
得分:0 
2008-04-25 23:23
wjjqw_123
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2007-12-20
收藏
得分:0 
你的需求呢?
2008-04-26 00:19
ll431
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-4-17
收藏
得分:0 
我的需求是,想找出其中的原因···

哎。感觉自己问问题的方式有典不好,下此问的时候,我肯定改过来。

以上我要表达的意思,有人栋吗,懂的可以帮忙解答下吗··
谢谢
2008-04-26 09:36
快速回复:在线求助·· 实在没办法了 小弟初学扎到不知道错在哪里
数据加载中...
 
   



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

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