编程,功能是求出二维数组周边元素并输出
我编的能运行但是结果一点也不对。。。求解
#include <stdio.h>
#define N 4
#define M 5
void main()
{
int a[N][M],i,j,k,n1,n2,n3,n4;
printf("please input:");printf("\n");
for(i=0;i<N;i++)for(j=0;j<M;j++)
{scanf("%d",&a[i][j]);}
if(i=0)
{
for(k=1;k<M;k++)
{a[i][j]+=a[i][j+k];}
n1=a[i][j];
for(k=1;k<M;k++)
{a[i][j]-=a[i][j+k];}
}
else if(i=N-1)
{
for(k=1;k<M;k++)
{a[i][j]+=a[i][j+k];}
n2=a[i][j];
for(k=1;k<M;k++)
{a[i][j]-=a[i][j+k];}
}
if(j=0)
{
for(k=1;k<N;k++)
{a[i][j]+=a[i+k][j];}
n3=a[i][j];
for(k=1;k<N;k++)
{a[i][j]-=a[i+k][j];}
}
else if(j=M-1)
{
for(k=1;k<N;k++)
{a[i][j]+=a[i+k][j];}
n4=a[i][j];
for(k=1;k<N;k++)
{a[i][j]-=a[i+k][j];}
}
printf("%d",n1+n2+n3+n4);
}
å¯æ¯ç»æè¿æ¯é误çåæè¿è¡è¯äºä¸ä¸ãããè¯è¯´è¯·é®ä¸ä¸ï¼åé¢è¾å ¥a[i][j]æåºè¯¥æä¹åå¢ï¼æä¸å¤ªæ¸ æ¥å¦
追çå°±æç §ç©éµçæ¹å¼è¾å ¥å°±å¯ä»¥ï¼ä¸é´ç¨ç©ºæ ¼éå¼
æ就没çè§£ä½ ä»ä¹ææ
æ¯æ±åºç©éµå¤å´å ç´ çåï¼ï¼
æ¯å¦
1 2 3 4 5
0 1 2 3 4
0 0 1 2 3
è¾åº25ï¼å¯¹ä¹ï¼
追é®æ¯å¦ï¼æè²ä¼¼ç解éé¢ç®äºãããä¸è¿ç §ä½ è¿ä¸ªè¯´æ³æ¯åºè¯¥æä¹åå¢ï¼æ±è§£ããã
追ç#include
#define N 4
#define M 5
void main()
{
int a[N][M],i,j,k,sum=0;
printf("please input:");printf("\n");
for(i=0;i<N;i++)
for(j=0;j<M;j++)
{
scanf("%d",&a[i][j]);
if(i==0||j==0||i==N-1||j==M-1)
sum+=a[i][j];
}
printf("å¨å´å
ç´ ä¹åæ¯%d\n",sum);
编程,功能是求出二维数组周边元素并输出,就是求长方形的边的数之和。。。
追答int Sum(int *a,int n,int m)改了之后结果还是错误的。。。大神加油啊一起来纠错。。。我是新手有很离谱的错误不要嘲笑。。。。
追答后面还有所有if(i=... if(j=... 都要改成 ==
这只是说语法错误。确实还有比较多的错误
for(i=0;i<N;i++)for(j=0;j<M;j++)
{scanf("%d",&a[i][j]);}
if(i=0)
这样子上面循环完了,i 就等于N了,j 就等于M了 所以下面的if 都执行不到
建议你还是自己再仔细分析一下
我。。。能说上C语言的课听了等于没听吗老师照课件讲的等于自习啊。。。所以现在真心一头雾水555.。。那啥,为啥i会等于N呢?我用的是<号呀?