您的位置:首页 > 编程语言 > C语言/C++

C语言基础练习12

2017-11-01 17:36 330 查看
1.将数组a中n个整数按相反顺序存放

#include<stdio.h>

int main()
{
void inv(int *x, int n);
int i, arr[10], *p = arr;
printf("The original array:\n");
for (i = 0; i < 10; i++, p++)
scanf_s("%d", p);
printf("\n");
p = arr;
inv(p, 10);
printf("The array has been inverted:\n");
for (p = arr; p < arr + 10; p++)
printf("%d ", *p);
printf("\n");
return 0;
}

void inv(int *x, int n)
{
int *p, m, temp, *i, *j;
m = (n - 1) / 2;
i = x; j = x + n - 1; p = x + m;
for (; i <= p; i++, j--)
{
temp = *i; *i = *j; *j = temp;
}
return;
}
运行结果:



2.用指针方法对10个整数按由大到小顺序排序

#include<stdio.h>

int main()
{
void sort(int x[], int n);
int i, *p, a[10];
p = a;
printf("please enter 10 integer numbers:\n");
for (i = 0; i < 10; i++)
scanf_s("%d", p++);
p = a;
sort(p, 10);
for (p = a, i = 0; i < 10; i++)
{
printf("%d ", *p);
p++;
}
printf("\n");
return 0;
}

void sort(int x[], int n)
{
int i, j, k, t;
for (i = 0; i < n - 1; i++)
{
k = i;
for (j = i + 1; j < n; j++)
if (x[j] > x[k])k = j;
if (k != i)
{
t = x[i]; x[i] = x[k]; x[k] = t;
}
}
}
运行结果:



3.输出二维数组任一行任一列元素的值

#include<stdio.h>

int main()
{
int a[3][4] = { 1,3,5,7,9,11,13,15,17,19,21,23 };
int(*p)[4], i, j;
p = a;
printf("please enter row and colum:");
scanf_s("%d,%d", &i, &j);
printf("a[%d,%d]=%d\n", i, j, *(*(p + i) + j));
return 0;
}
运行结果:



4.有一个班,3个学生,各学4门课,计算总平均分数以及第n个学生的成绩

#include<stdio.h>

int main()
{
void average(float *p, int n);
void search(float(*p)[4], int n);
float score[3][4] = { 65,67,70,60,80,87,90,81,90,99,100,98 };
average(*score, 12);
search(score, 2);
return 0;
}

void average(float *p, int n)
{
float *p_end;
float sum = 0, aver;
p_end = p + n - 1;
for (; p <= p_end; p++)
sum = sum + (*p);
aver = sum / n;
printf("average=%5.2f\n", aver);
}

void search(float(*p)[4], int n)
{
int i;
printf("Th score of No.%d are:\n", n);
for (i = 0; i < 4; i++)
printf("%5.2f ", *(*(p + n) + i));
printf("\n");
}
运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 练习