//
// Created by 86184 on 2024/8/13.
//
//8.找出一个二维数组的鞍点
// 行最大 列最小
// 这里默认只有一个鞍点
#include <stdio.h>#define M 3#define N 4
int main(){
int array[M][N]={0};
int pos =0, j =0, i =0, max =0,flag =0;
printf("请输入%d行%d列二维数组:\n", M, N);
fflush(stdout);for(int i =0; i < M; ++i){for(int j =0; j < N; ++j){
scanf("%d", &array[i][j]);}}for(i =0; i < M; ++i){
//找改行上最大元素并记录他的列号
max = array[i][0];for(j =0; j < N; ++j){if(array[i][j]> max){
max = array[i][j];
pos = j;}}
//确定元素是否为该列上的最小元素
for(j =0; j < M; ++j){if(array[j][pos]< max){break;}}
//如果在pos列未发现比max小的元素,说明max是pos列最小的元素
if(j == M){
printf("鞍点为%d,在第%d行,第%d列 ", max, i, pos);
flag =1;break;}}
if(flag ==0){
printf("没有鞍点");}return0;}
//
// Created by 86184 on 2024/8/14.
//
//13.编写程序,将两个字符串连接起来
#include <stdio.h>#include <string.h>
int main(){
char s1[]="abcd", s2[]={"hijk"};
int len1 = strlen(s1), len2 = strlen(s2);
int len3 = len1 + len2, k =0;
char s3[100]={'\0'};
printf("%d%d", len1, len2);for(int i =0; i < len1; ++i) s3[k++]= s1[i];for(int i =0; i < len1; ++i) s3[k++]= s2[i];for(int i =0; i < len3; ++i) printf("%c", s3[i]);return0;}
//在这段代码中,你使用了 sizeof(s1) 和 sizeof(s2) 来计算字符串 s1 和 s2 的长度。
//然而,这种方式并不适用于计算字符串的实际长度。
//sizeof(s1) 和 sizeof(s2) 返回的是数组的大小(以字节为单位),
//而不是字符串的长度。
//字符串的长度应该使用 strlen() 函数来获取,
//它会计算字符串中的实际字符数,不包括结尾的空字符 \0。
//此外,你在循环中使用了 i++ 来迭代 i,但这会导致循环条件不按预期工作。
//你应该只使用一个循环来连接两个字符串。