找出二维数组中的最小值,如果出现有多个最小值,按先行后列的方式输出第一个。
#include<stdio.h>
int main()
{
int a[4][5],min=0,min_i=0,min_j=0,flag=0;
//输入数组
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 5; j++)
{
/* code */
scanf("%d",&a[i][j]);
}
}
min=a[0][0];
//找出最小值
for (int i = 0; i < 4; i++)
{5
for (int j = 0; j < 5; j++)
{
/* code */
if (min>=a[i][j])
{
min=a[i][j];
}
}
}
//找出第一个出现的最小值
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 5; j++)
{
/* code */
if (min==a[i][j] && flag==0)
{
flag=1;
min_i=i,min_j=j;
}
}
}
printf("最小值为%d,第%d行第%d列\n",a[min_i][min_j],min_i,min_j);
return 0;
}
运行结构
运行结果
本代码中的这种,按先行后列的方式输出第一个最小值的写法是本人之前写单片机的习惯,使用标志位纯属个人习惯!
一位数组输入10个元素,求出这10个元素的偶数和。
#include<stdio.h>
int main()
{
int a[10],sum=0;
//输入元素
for (int i = 0; i < 10; i++)
{
/* code */
scanf("%d",&a[i]);
}
//找出偶数并求和
for (int i = 0; i < 10; i++)
{
/* code */
if (a[i]%2==0)
{
/* code */
sum+=a[i];
}
}
printf("%d",sum);
return 0;
}
运行结果
就这题,有个兄弟给我说,这题他们老师说这样写是错的,我真不知道那错了!可能是c没学好看不出来吧。还有他给我说他老师用手机跑的我写的代码!然后运行出现错误,我看了提示分号有问题,他老师说是代码不对,我是运行通过才给它发的 ,哈哈哈哈哈哈哈哈!
如果那个兄弟看出来哪错了,记得告诉我下,真心感谢!