C语言数组
/* 有一个M行N列符浮点型矩阵,先通过屏幕输入数据。然后针对每一行,对大于零的数据求和。将结果存入一个一维数组。
再找出该一维数组中最大的元素,输出该最大值和所在位置。 */
#include<stdio.h>
#define N 3
#define M 4
int main()
{
float a,max,sum;
int i,j;
printf("输入3行4列的数组:\n");
for(i=0;i<N;i++)
for(j=0;j<M;j++)
scanf("%f",&a);//输入数据
for(i=0;i<N;i++)
{
sum=0.0;
for(j=0;j<M;j++)
{
if(a>0)
{
sum+=a;
}
}
printf("%f ",sum);
printf("\n");
}//输出每一行大于零的数的和。
}
//我只能写出找每一行大于零的数之和的代码,而且还有点错,只有第三行可以实现。
//还有这道题目的后半部分不知道怎么写了。
//求助哇https://fishc.com.cn/static/image/smiley/lovely/20080925104604637.gif #include<stdio.h>
#define M 4
#define N 3
int main()
{
float a , b , sum ;
int i , j ;
printf("输入 %d 行 %d 列的数组:\n" , M , N) ;
for(i = 0 ; i < M ; i ++) {
for(sum = j = 0 ; j < N ; j ++) {
scanf("%f" , & a) ;
if(a > 0) sum += a ;
}
b = sum ;
}
for(j = 0 , i = 1 ; i < M ; i ++) {
if(b > b) j = i ;
}
printf("%d\n" , j) ;
} #include<stdio.h>
#define N 3
#define M 4
int main()
{
float a, b, max, sum = 0;
int i, j;
printf("输入3行4列的数组:\n");
for (i = 0;i < N;i++)
{
for (j = 0;j < M;j++)
{
scanf("%f", &a); // 此处错误,是二维数组
if (a > 0)
{
sum += a;
}
}
b = sum; // 将所求该行之和赋给一维数组
sum = 0; // 为下一行求和而清0
}
max = b;
for (i = 0;i < N;i++)
{
printf("%.2f ", b); // 输出一维数组(此处是两位小数,可按题目要求修改为几点几)
if (max < b)
{
max = b;
j = i; // 记录最大值的位置
}
}
printf("\n");
printf("%d \n", j + 1); // 输出最大值的位置(不加1就是按b数组序号)
}
页:
[1]