01.计算鞍点
for (i = 0; i <= 4; i++)
{
max[i] = a[i][0];//最大值初始化为行首项
for (j = 0; j <= 4; j++)
{
if (a[i][j] > max[i])
{
max[i] = a[i][j];
d = j;//记下列数
}
}//寻找同行最大值
min = a[0][d];//最小值初始化为列首项
for (b = 0; b <= 4; b++)
{
if (a[b][d] < min)
{
min = a[b][d];
e = b;//记下行数
}
}
if (e == i) //若位置相同则输出鞍点
{printf("%d %d %d",e+1,d+1,a[e][d]);}
else c = c + 1;
d = 0;
e = 0;
}
if (c == 5) printf("not found");
02.反转字符数组元素
gets(str);//键入数组
int len, i;
len = strlen(str);//会用到
char temp;
for (i = 0; i <= len-i-1; i++)
{
temp = str[i];
str[i] = str[len - 1 - i];
str[len - 1 - i] = temp;
}
printf("%s", str);
03.交换矩阵指定的行
int m, n, temp;
scanf("%d %d",&m,&n);//键入要交换的两行数
for (j = 0; j <= 4; j++)
{
temp = a[m-1][j];
a[m-1][j] = a[n-1][j];
a[n-1][j] = temp;
}
for (i = 0; i <= 4; i++)
{
for (j = 0; j <= 4; j++)
{
if (j <= 3)
printf("%d ", a[i][j]);
else
printf("%d\n", a[i][j]);//输出时,每行最后一位后无空格
}
}
04.附加题-最大子数组
int max= a[0];
int len, sum;
int m, n;//m为首项,n为末项
for (i = 0; i < 10; i++)
{
for (len = 1;len<10-i;len++)
{
sum = 0;
for (j = i; j < i + len; j++)
{
sum += a[j];
}
if (max < sum)
{
max = sum;
m = i;
n = len + i - 1;
}
}
}
for (i = m; i <= n; i++)
{
printf("%d ",a[i]);
}
printf("%d", max);
下期见!
南 开 软 件
职业发展部出品
文案&排版|吴祎璠