牛客网初阶练习(5)
目录
1.争夺前五名
学会自己设计排序算法和使用C语言提供的库函数排序算法
方法一:自己设计排序算法
#include<stdio.h> int main() { int arr[40] = { 0 }; int n = 0; //输入 scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } //排序 for (int i = 0; i < n-1; i++) { for (int j = 0; j < n - i - 1; j++) { if (arr[j] < arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } //输出 for (int i = 0; i < 5; i++) { printf("%d ", arr[i]); } return 0; }
方法二:使用系统自带的排序算法
#include<stdio.h> #include<stdlib.h> int cmp_int(const void* e1, const void* e2) { return *(int*)e2 - *(int*)e1; } int main() { int arr[40] = { 0 }; int n = 0; //输入 scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } //排序 qsort(arr, n, 4, cmp_int); //输出 for (int i = 0; i < 5; i++) { printf("%d ", arr[i]); } return 0; }
此处需要了解有关于qsort 排序函数的应用
qsort()函数中四个参数的意义为:(目标数组的开始位置(如果从第一个开始。可直接写数组名)、要排序的数组的元素的个数、每个元素所占的字节数、比较函数)
比较函数:
e1在前时是升序,e1在后时是降序。
2.竞选社长
方法1:
#include<stdio.h> int main() { char arr[500] = { 0 }; int i = 0; int A_num = 0; int B_num = 0; scanf("%s", &arr); int len = strlen(arr)-1; for (i = 0; i < len; i++) { if (arr[i] == 'A') { A_num++; } else { B_num++; } } if (A_num > B_num) { printf("A"); } else if (A_num < B_num) { printf("B"); } else { printf("E"); } return 0; }
方法2:
(用了gets函数)
#include<stdio.h> int main() { char arr[100] = { 0 }; int count_A = 0; int count_B = 0; int i = 0; gets(arr); while (arr[i] != '0') { if ('A' == arr[i]) { count_A++; } else { count_B++; } i++; } if (count_A > count_B) { printf("A"); } else if (count_A < count_B) { printf("B"); } else { printf("E"); } return 0; }
方法3:
(只定义一个变量flag,如果为A,flag++,如果为B,flag--,然后用flag与0的大小进行判断)
#include<stdio.h> int main() { char arr[100] = { 0 }; int flag = 0; int i = 0; gets(arr); while (arr[i] != '0') { if ('A' == arr[i]) { flag++; } else { flag--; } i++; } if (flag>0) { printf("A"); } else if (flag<0) { printf("B"); } else { printf("E"); } return 0; }
方法4:
(用getchar()函数进行一个个获取进行判定)
#include<stdio.h> int main() { int ch = 0; int flag = 0; while ((ch=getchar()) != '0' && ch != EOF) { if ('A' == ch) { flag++; } else if ('B' == ch) { flag--; } } if (flag > 0) { printf("A"); } else if (flag < 0) { printf("B"); } else { printf("E"); } return 0; }
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
二维码