行列元素互换
#include <stdio.h>
void fh(int a[][3],int b[][3])
{
int i,j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("%5d", a[i][j]);
b[j][i] = a[i][j];
}
printf("\n");
}
}
int main()
{
int a[3][3] = {{1, 2, 3}, {4, 5, 6},{7,8,9}};
int b[3][3], i, j;
printf("array a:\n");
fh(a,b);
printf("array b:\n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
printf("%5d", b[i][j]);
printf("\n");
}
return 0;
}
鞍点
#include<stdio.h>
int main()
{
int a[3][3]=
{
{1,2,5},
{4,6,5},
{7,3,9}
};
int i,j;
int max;
int col;
int flag;
for(i = 0;i < 3;i++)
{
max = a[i][0];
for(j = 0;j < 3;j++)
{
if(max <= a[i][j])
{
max = a[i][j];
col = j;
}
}
flag=1;//是鞍点
for(j =0;j < 3;j++)
{
if (a[j][col] < max)
{
flag=0;
break;
}
}
if(flag)
{
printf("%d\n",max);
}
}
return 0;
}
include <stdio.h>
include <malloc.h>
struct Student
{
int age;
float score;
char name[100];
};
void output_printf(int len, struct Student *pArr);
void intput_printf(int len, struct Student *pArr);
void sort(int len, struct Student *pArr);
int main(void)
{
int len, i, j;
struct Student *pArr;
printf("请输入学生的个数:\n");
printf("len=");
scanf("%d", &len);
printf("\n");
//动态构造一维数组
pArr = (struct Student *)malloc(sizeof(struct Student) * len);
intput_printf(len, pArr);
sort(len, pArr);
output_printf(len, pArr); //&pArr 传过去指针的地址 也就是二级指针
return 0;
}
void output_printf(int len, struct Student *pArr)
{
int i;
printf("\n\n学生的信息是:\n");
//输出
for (i = 0; i < len; i++)
{
printf("第%d个学生的信息\n", i + 1);
printf("age = %d\n", pArr[i].age);
printf("name = %s\n", pArr[i].name);
printf("score = %f\n", pArr[i].score);
printf("\n");
}
}
void intput_printf(int len, struct Student *pArr)
{
int i;
for (i = 0; i < len; i++)
{
printf("请输入第%d个学生的信息\n", i + 1);
printf("age = ");
scanf("%d", &pArr[i].age);
printf("name=");
scanf("%s", pArr[i].name);
// name是数组名,本身就已经是数组首元素的地址,所以pArr[i].name 不能改成 &pArr[i].name
printf("score = ");
scanf("%f", &pArr[i].score);
}
}
void sort(int len, struct Student *pArr) //按学生成绩升序排序 冒泡排序
{
int i, j;
struct Student temp;
for (i = 0; i < len - 1; i++)
{
for (j = 0; j < len - 1 - i; j++)
{
if (pArr[j].score > pArr[j + 1].score) // >表示升序:由小到大排序; <表示降序:由大到小排序;
{
temp = pArr[j];
pArr[j] = pArr[j + 1];
pArr[j + 1] = temp;
}
}
}
}