二维数组周边元素和
#include <stdio.h>
#define N 5
int main()
{
int a;
printf("请输入数组的数值:");
int i,j;
int min,sum=0;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
scanf("%d",&a);
}
}
min=a;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if(min>a)
{
min=a;
}
}
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
/*
if(i==0||i==4)
{
sum=sum+a;
}
else if(j==0||j==4)
{
sum=sum+a ;
}*/
if(i==0||i==4)
{
sum=sum+a;
}
if(i==1||i==2||i==3)
{
sum=sum+a+a;
}
}
}
printf("周边元素之和是%d",sum);
putchar('\n');
printf("最小的数是:%d",min);
}
没有加注释的那一种错在了什么地方? 5*5矩阵并不大,手动演算就知道了。
外围一共16个数,第一个if没毛病,加了第0行和第4行,这就10个数
然后1、2、3行,对 j 没限定,每次循环都加2个数,一行5个,一共3行,这就30个数
总共加起来是40个数的和,区别够明显吧 本帖最后由 jhq999 于 2022-6-2 18:05 编辑
if(i==1||i==2||i==3)
{
sum=sum+a+a;////////这个被运行了15次,从1,0到1,4,2,0到2,4,3,0到3,4
} {:10_256:} jhq999 发表于 2022-6-2 18:04
对对对 ,糊涂了...... {:10_256:}{:10_256:}{:10_256:} {:10_256:}{:10_277:} {:5_108:} 6666666666666666 {:10_256:}{:10_256:}{:10_256:}每天来摸奖 {:5_106:} {:10_277:} {:10_256:} {:10_277:} {:10_256:}
页:
[1]