思维导图:
1.
代码:
#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
char a[64] = {0};
gets(a);
char *p = a;
char n = 0;
int k = 0;
int j = strlen(a)-1;
int i = 0;
for (i = 0; i < j; i++,j--)
{
n = *(p+i);
*(p+i) = *(p + j);
*(p + j) = n;
}
j = 0;
for (i = 0; *(p + i) != '\0'; i++)
{
for (i=j; *(p + j) != ' ' && *(p + j) != '\0'; j++)
{
;
}
for (k = j - 1; i < k; i++,k--)
{
n = *(p + i);
*(p + i) = *(p + k);
*(p + k) = n;
}
for (; *(p + j) == ' '; j++)
{;
}
}
for (i = 0; i < strlen(a); i++)
{
printf("%c",*(p+i));
}
return 0;
}
运行结果:
2.
代码:
#include <stdio.h>
#include <math.h>
#include <string.h>
int SecondMax(int line, int row, int arr[line][row])
{
int max1 = 0, max2 = 0;
int i = 0;
int j = 0;
printf("请输入二维数元素:");
for(i=0;i<line;i++)
{
for(j=0;j<row;j++)
{
scanf("%d",&arr[i][j]);
}
}
for (i = 0; i < line; i++)
{
for (j = 0; j < row; j++)
{
if (arr[i][j] < max2)
{
max2 = arr[i][j];
}
}
}
for (i = 0; i < line; i++)
{
for (j = 0; j < row; j++)
{
if (arr[i][j] > max1)
{
max2 = max1;
max1 = arr[i][j];
}
}
}
return max2;
}
int main()
{
int a = 0;
int b = 0;
printf("请输入二维数组行,列:");
scanf("%d",&a);
scanf("%d",&b);
int arr[a][b];
int c = 0;
c = SecondMax(a,b,arr);
printf("第二大值为:%d",c);
return 0;
}
运行结果: