一个分号引发的“血案”


发火抓狂大哭骂人抓狂发火骂人发火  再多的表情也无法诠释我现在的心情!!!!!!!!


A+B for Matrices


这是很水的一道题,然而却整整折腾了我2个多小时。从晚上6点多开始,花了没几分钟就把代码敲好了,可是数据一测,竟然不对,然后就开始找问题,找了很久,我竟然都还没看出问题在哪,越找心里越不爽,这么做明明对的呀,一运行怎么就错了呢?一直到了8点,同学来叫我跑步去,我都没看出来(眼神差上不起啊)诶,不管了,先去跑步吧。9点回来继续找问题,有找了一个小时,彻底崩溃,决定上网搜,搜到个几乎一模一样的,对比了一下,还是没看出哪里出问题,而一运行答案却不同。然后叫来同学帮忙看看哪里不一样,还是他眼神好啊,看了两遍,终于看到 那个该死的分号了。


做题的时候太急了,一发现运行出错,没能静下心来仔细检查代码,一遍两遍没看出问题在哪,心里就更急了,当然就更不容易看出哪出现问题。这必须改啊! 还有,审题也要仔细,不能急,看清题目再下手!!!切记切记!!!!


贴下代码吧


错误代码:

/*

*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int A[11][11],B[11][11];
int C[11][11];

int main()
{
	freopen("input.txt","r",stdin);
	int n,m;
	while(scanf("%d %d",&n,&m)&&n)
	{
		int i,j;
		memset(A,0,sizeof(A));
		memset(C,0,sizeof(C));
		memset(B,0,sizeof(B));
		for(i=0; i<n; i++)
		{
			for(j=0; j<m; j++)
				scanf("%d",&A[i][j]);
		}
		for(i=0; i<n; i++)
		{
			for(j=0; j<m; j++)
				scanf("%d",&B[i][j]);
		}
		for(i=0; i<n; i++)
		{
			for(j=0; j<m; j++)
			{
				C[i][j]=A[i][j]+B[i][j];
			}	
		}
		int r=0,l=0;
		for(i=0; i<n; i++)
		{
			for(j=0; j<m; j++)
			{
				if(C[i][j]!=0)
					break;
			}	
			if(j>=m)
				r++;
		}
		for(j=0; j<m; j++)
		{
			i=0;
			for(i=0; i<n; )
			{
				if(C[i][j]!=0);
					break;
				i++;
			}	
			if(i>=n)
				l++;
		}
		printf("%d\n",r+l);
	}
	return 0;
}








网上找的:

#include <iostream>
#include<string.h>

using namespace std;

int main()
{
	freopen("input.txt","r",stdin);
    int A[11][11];
    int B[11][11];
    int C[11][11];
    
    int M,N;
    int i,j;
    while(cin>>M>>N,M!=0)
    {
     int k =0;
    memset(A,0,sizeof(A));
    memset(B,0,sizeof(B));      
    memset(C,0,sizeof(C));    
      
      for(i=0;i<M;i++)
       for(j=0;j<N;j++)
          cin>>A[i][j];
          
     for(i=0;i<M;i++)
       for(j=0;j<N;j++)
          cin>>B[i][j]; 
          
     for(i=0;i<M;i++)
       for(j=0;j<N;j++)
         C[i][j]=A[i][j]+B[i][j]; 
         
     for(i=0;i<N;i++)
  {
     for(j=0;j<M;j++)
     { 
        if(C[j][i] != 0)
        break;               
     }
     if(j==M) k++;

  }      
    for(j=0;j<M;j++)
    {
       for(i=0;i<N;i++)
     { 
        if(C[j][i] != 0)
        break;               
     }
     if(i==N) k++;
  }             
    cout<<k<<endl;    
           
                     
    }
 
    
    
    
    
   // system("PAUSE");
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值