黑马程序员技术交流社区
标题: 【基础测试 七】 [打印本页]
作者: black747521 时间: 2015-11-8 21:01
标题: 【基础测试 七】
//
// main.c
// 测试题 7
// 7、 从键盘输入一大堆字符串,统计A、B、C、D的出现次数,最后出现次数由高到低输出字母和出现次数。(C语言)
// Created by black on 15/11/2.
// Copyright © 2015年 black. All rights reserved.
//
#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[]) {
// 定义一个字符串数组
char str[100];
//定义四个变量,分别统计出现次数
int count_A = 0,count_B = 0,count_C = 0,count_D = 0;
//定义指针数组,用来排序
int *arr[4]={&count_A,&count_B,&count_C,&count_D};
//提示输入字符串
printf("请输入字符串:\n");
fgets(str, sizeof(str), stdin);
//分别统计ABCD出现的次数
for (int i=0; i<strlen(str); i++) {
switch (str) {
case 65:
count_A++;
break;
case 66:
count_B++;
break;
case 67:
count_C++;
break;
case 68:
count_D++;
break;
}
}
//选择排序法给arr排序,arr[0]指向最大的count
for (int i=0; i<3; i++) {
for (int j=i+1; j<4; j++) {
if (*arr < *arr[j]) {
int *temp = arr;
arr = arr[j];
arr[j] = temp;
}
}
}
//按字母出现次数输出结果
for (int i=0; i<4; i++) {
if (arr == &count_A) {
printf("A出现的次数:%d\n",count_A);
}else if (arr == &count_B) {
printf("B出现的次数:%d\n",count_B);
}else if (arr == &count_C) {
printf("C出现的次数:%d\n",count_C);
}else if (arr == &count_D) {
printf("D出现的次数:%d\n",count_D);
}
}
return 0;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |