*首先记住以下:
算法框架从内到外。
明确改变的条件。明确如何改变。明确导向结果。
一。分析流程:
输入——组成数组——输出数组和最大值
二。细化:
S1输入的格式:一行输入,中间空格,最后一格无空格。
S2组成数组:运用二维数组,其中前四个数中间有三个空格,且第一个数前有三个空格,第四和五个数中间只有两个空格。第四个数负责记下每行的最大值,第五个数负责记下每行的和,最后没有空格。
S3输出数组:详见输出样例输出(与S2合成一步)。
三。运用知识:
输入输出函数,循环语句,二维数组的建立&录入数据&按要求输出,条件语句,排序算法
自己写的:
#include<stdio.h>
int main()
{
int i, j, m1, m2 , m3, s1, s2, s3;
int a[3][3] = { 0 };
int b[3][2] = { 0 };
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
scanf("%d", &a[i][j]);
}
}
m1= a[0][0];
if (a[0][0] < a[0][1] && a[0][1] > a[0][2])m1 = a[0][1];
if (a[0][1] < a[0][2] && a[0][0] < a[0][2])m1 = a[0][2];
m2 = a[1][0];
if (a[1][0] < a[1][1] && a[1][1] > a[1][2])m2 = a[1][1];
if (a[1][1] < a[1][2] && a[1][0] < a[1][2])m2 = a[1][2];
m3 = a[2][0];
if (a[2][0] < a[2][1] && a[2][1] > a[2][2])m3 = a[2][1];
if (a[2][1] < a[2][2] && a[2][0] < a[2][2])m3= a[2][2];
s1 = a[0][0] + a[0][1] + a[0][2];
s2 = a[1][0] + a[1][1] + a[1][2];
s3 = a[2][0] + a[2][1] + a[2][2];
b[0][0] = m1;
b[0][1] = s1;
b[1][0] = m2;
b[1][1] = s2;
b[2][0] = m3;
b[2][1] = s3;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf(" %d", a[i][j]);
}
printf(" %d", b[0][0]);
printf(" %d",b[])
}
return 0;
}
需要一个一个敲,没效率。
看看别人的:
主要错在了:比大小的数组形式 及 最后输出 环节。