C语言基础练习12

来源:互联网 发布:强直性脊柱炎 知乎 编辑:程序博客网 时间:2024/06/06 03:28


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");}
运行结果:



原创粉丝点击