本文主要是介绍【C/PTA —— 12.指针1(课外实践)】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
C/PTA —— 12.指针1(课外实践)
- 一.函数题
- 6-1 删除字符串中数字字符
- 6-2 找最大值及其下标
- 6-3 求两数平方根之和
- 6-4 求一组数中的最大值、最小值和平均值
- 6-5 两个4位正整数的后两位互换
- 6-6 判断回文字符串
- 二.程序题
- 7-1 求矩阵每行元素的和
一.函数题
6-1 删除字符串中数字字符
void delnum(char* s)
{int i = 0;int j = 0;while (s[i] != '\0'){if (!(s[i] <= '9' && s[i] >= '0')){s[j] = s[i];j++;}i++;}s[j] = '\0';
}
6-2 找最大值及其下标
int fun(int* a, int* b, int n)
{int max = a[0];for (int i = 1; i < n; i++){if (max < a[i]){max = a[i];*b = i;}}return max;
}
6-3 求两数平方根之和
double fun(double* a, double* b)
{double sum = sqrt(*a) + sqrt(*b);return sum;
}
6-4 求一组数中的最大值、最小值和平均值
float fun(int a[], int n, int* max, int* min)
{float p = (float)a[0];*max = a[0];*min = a[0];for (int i = 1; i < n; i++){p += (float)a[i];if (a[i] < *min)*min = a[i];if (a[i] > *max)*max = a[i];}return p / n;
}
6-5 两个4位正整数的后两位互换
void fun(int* p, int* q)
{int a1 = 0, a2 = 0;int b1 = 0, b2 = 0;while (*p > 100){a1 = *p % 10;*p /= 10;a2 = *p % 10;*p /= 10;}while (*q > 100){b1 = *q % 10;*q /= 10;b2 = *q % 10;*q /= 10;}*p = *p * 100 + b2 * 10 + b1;*q = *q*100 + a2 * 10 + a1;}
6-6 判断回文字符串
bool palindrome(char* s)
{int left = 0;int right = strlen(s) - 1;while (left < right){if (s[left] != s[right])return false;left++;right--;}return true;
}
二.程序题
7-1 求矩阵每行元素的和
#define N 6
int main()
{int m, n, sum = 0;int a[N][N];int(*p)[N];int i, j;p = a;scanf("%d%d", &m, &n);for (i = 0; i < m; i++){for (j = 0; j < n; j++){scanf("%d", &*(*(p + i) + j));}}for (i = 0; i < m; i++){sum = 0;for (j = 0; j < n; j++){sum = sum + *(*(p + i) + j);}printf("%d\n", sum);}return 0;
}
这篇关于【C/PTA —— 12.指针1(课外实践)】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!