今日练习:
25、用指针方法对10个整数按由大到小顺序排序
26、有一个班,3个学生,各学习4门课,计算总平均分数以及第 n 个学生的成绩
27、有一个3 * 4的二维数组,要求用指向元素的指针变量输出二维数组个元素的值。
用指针方法对10个整数按由大到小顺序排序
运行代码
int main()
{
int i = 0;
int j = 0;
int temp = 0;
int arr[10];
int* p ;
printf("请输入十个数:");
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
p = arr;
for (i = 0; i < 9; i++)
{
for (j = i + 1; j < 10; j++)
{
if (*(p + i) > *(p + j))
{
temp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
}
}
}
printf("由大到小排序后的:");
for (i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
运行结果
有一个班,3个学生,各学习4门课,计算总平均分数以及第 n 个学生的成绩
运行代码
int main()
{
void average(float* p, int n);
void search_Grade(float(*p)[4], int n);
float score[3][4] = { {91,92,93,94},{95,96,97,98},{99,91,91,92} };
average(*score, 12);
search_Grade(score, 2);
return 0;
}
void average(float* p, int n)
{
float* p_end;
float sum = 0;
float aver = 0;
p_end = p + n - 1;
for (; p <= p_end; p++)
{
sum = sum + (*p);
}
aver = sum / n;
printf("平均数是: %f ", aver);
printf("\n");
}
void search_Grade(float(*p)[4], int n)
{
int i = 0;
printf("第%d个学生的成绩是:", n + 1);
for (i = 0; i < 4; i++)
{
printf(" %5.2f ", *(*(p + n) + i));
}
printf("\n");
}
运行结果
有一个3 * 4的二维数组,要求用指向元素的指针变量输出二维数组个元素的值。
运行代码
int main()
{
int arr[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 };
int* p;
int m = 0;
for (m = 0, p = arr[0]; p < arr[0] + 12; p++, m++)
{
if (m % 4 == 0)
{
printf("\n");
}
printf("%4d", *p);
}
printf("\n");
return 0;
}