int main(int argc, const char * argv[]) { @autoreleasepool { int arr[9] = {2,3,4,2,3,4,4,4,4}; int len = sizeof(arr) / sizeof(arr[0]); // 计算出现次数最多 max_count_num(arr, len); } return 0; }
int max_count_num(int *arr,int len) { // 定义次数存储数组 int maxArr[len]; // 数组初始化 for(int i = 0; i < len; i ++) { maxArr[i] = 0; } // 对数组中的元素进行count for (int i = 0; i < len; i ++) { for (int j = 0; j < len; j ++) { if (arr[i] == arr[j]){ maxArr[i]++; } } // printf("%d",maxArr[i]); } // 取出数组中元素的最大值 int max = 0; for (int i = 0; i < len; i ++) { if (maxArr[0] < maxArr[i]) { max = i; } } // printf("最大次数下标:%d",max); printf("出现次数最多的元素为:%d,出现次数为:%d\n",arr[max],maxArr[max]); return 0; } ====== 出现次数最多的元素为:4,出现次数为:5
// 正整数的长度 int numLen(int num) { int len = 0; while (num > 0) { num = num / 10; len += 1; } return len; }
// 求各个位数之和 int sumNum(int num) { int sum = 0; // 如果大于10 if (num > 10) { int len = numLen(num); // 先加上最后一位 sum += num % 10; for (int i = 0; i < len - 1; i ++) { // 去掉最后一位 num = num / 10; // 得到最后一位的数并累加 sum += num % 10; } return sum; } return num; }
int main(int argc, const char * argv[]) { int num = 125; int sum = sumNum(num); printf("%d 各个数之和为:%d\n",num,sum); return 0; }
int func(char a[]){ // 长度 long len = strlen(a); int i,j,num=0; for (i = 0; i < len; i ++) { if (a[i] == 'A') //pow() 函数用来求 x 的 y 次方的值。 num += 10 * pow(16, len - i - 1); else if (a[i] == 'B') num += 11 * pow(16, len - i - 1); else if (a[i] == 'C') num += 12 * pow(16, len - i - 1); else if (a[i]=='D') num += 13 * pow(16, len - i - 1); else if (a[i] == 'E') num += 14 * pow(16, len - i - 1); else num += i * pow(16, len - i - 1); } return num; }
Post title:C算法01:C语言常见算法
Post author:张建
Create time:2023-02-12 00:06:03
Post link:https://redefine.ohevan.com/2023/02/12/OC数据结构和算法/C算法01:C语言常见算法/
Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.