用C语言完成:用while循环从键盘用数组随机读入N个字符(大小写混输),直到遇到回车为止。对读入的字符用选择法按从大到小的顺序重新排列输出。
时间: 2023-05-26 22:01:57 浏览: 118
```
#include <stdio.h>
int main() {
char arr[100];
int size = 0;
while (1) {
char c = getchar();
if (c == '\n') break;
arr[size++] = c;
}
for (int i = 0; i < size - 1; i++) {
int maxIndex = i;
for (int j = i + 1; j < size; j++) {
if (arr[j] > arr[maxIndex]) {
maxIndex = j;
}
}
char temp = arr[i];
arr[i] = arr[maxIndex];
arr[maxIndex] = temp;
}
for (int i = 0; i < size; i++) {
printf("%c ", arr[i]);
}
printf("\n");
return 0;
}
```
相关问题
C语言从键盘输入一行字符串,包含各种字符以回车键结束,,只保留该字符串中的大小写字母'a'->'z','A'->'Z'以及空格符,删除其它字符,并保存到out.txt文件中。 (1)out.txt就在考试目录下,可以直接打开,不需要加路径; 示例如下: 键盘输入:hef@#8 ll#DFD 343Ilk(90 we fe213 [out.txt]文件内容输出为: hef llDFD Ilk we fe
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char c;
FILE *fp;
fp = fopen("out.txt", "w"); // 打开文件,如果不存在则创建
while ((c = getchar()) != '\n') { // 读入一行字符串
if (isalpha(c) || c == ' ') { // 如果是字母或空格符则输出到文件
fputc(c, fp);
}
}
fclose(fp); // 关闭文件
return 0;
}
```
该程序中使用了C标准库中的getchar、isalpha、fopen、fputc和fclose函数。
其中,getchar函数用于从键盘读入一个字符,isalpha函数用于判断该字符是否为字母,fopen函数用于打开文件并返回文件指针,fputc函数用于将一个字符输出到文件,fclose函数用于关闭文件。
程序运行时,用户从键盘输入一行字符串,程序将其中的字母和空格符输出到out.txt文件中。
编写程序统计从键盘输入的一行文本中各个字母的个数。 输入以回车键结束。 不区分大小写,大写字母与相应的小写字母按照同一个字母看待。 要求输出按照各个字母出现的个数从大到小进行排序,出现的个数相同的,按照字母在字母表中的先后顺序进行排序。 ***输入格式:调用getchar()函数依次输入每个字符 ***输出格式:"%c(%c):%d\n" 例如输入以下文本: Hello World 程序将输出: L(l):3 O(o):2 D(d):1 E(e):1 H(h):1 R(r):1 W(w):1 A(a):0 B(b):0 C(c):0 F(f):0 G(g):0 I(i):0 J(j):0 K(k):0 M(m):0 N(n):0 P(p):0 Q(q):0 S(s):0 T(t):0 U(u):0 V(v):0 X(x):0 Y(y):0 Z(z):0 c语言
好的,这是一个统计文本中各个字母出现次数的问题,C语言代码如下:
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_SIZE 26
int main() {
int count[MAX_SIZE] = {0}; // 存放各个字母出现次数的数组
char c;
// 逐个读入字符
while ((c = getchar()) != '\n') {
if (isalpha(c)) { // 判断是否是字母
c = tolower(c); // 转换为小写字母
count[c - 'a']++; // 对应字母出现次数加1
}
}
// 输出结果,按出现次数从大到小排序
for (int i = MAX_SIZE - 1; i >= 0; i--) {
for (int j = 0; j < MAX_SIZE; j++) {
if (count[j] == i) {
printf("%c(%c):%d\n", j + 'A', j + 'a', i);
}
}
}
return 0;
}
```
运行示例如下:
```
Hello World
L(l):3
O(o):2
D(d):1
E(e):1
H(h):1
R(r):1
W(w):1
A(a):0
B(b):0
C(c):0
F(f):0
G(g):0
I(i):0
J(j):0
K(k):0
M(m):0
N(n):0
P(p):0
Q(q):0
S(s):0
T(t):0
U(u):0
V(v):0
X(x):0
Y(y):0
Z(z):0
```
注意,代码中使用了字符处理函数 isalpha() 和 tolower(),分别判断字符是否是字母和将大写字母转换为小写字母。另外,使用了计数数组 count 来统计各个字母出现次数,最后按照出现次数从大到小排序并输出结果。
阅读全文