用C语言写一个程序:从键盘输入10个学生的成绩,要求按照从大到小的顺序排列输出。
时间: 2023-03-30 18:04:25 浏览: 199
这是一个冒泡排序程序的实现:
#include <stdio.h>
#define N 10
int main() {
int i, j;
int a[N]; // 定义数组a
printf("请输入10个学生的成绩:\n");
for (i = 0; i < N; i++) {
scanf("%d", &a[i]); // 从键盘输入10个学生的成绩
}
// 冒泡排序
for (i = 0; i < N - 1; i++) {
for (j = 0; j < N - 1 - i; j++) {
if (a[j] < a[j + 1]) { // 如果前一个元素比后一个元素大,交换两个元素的位置
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
printf("按从大到小的顺序排列后的成绩:\n");
for (i = 0; i < N; i++) {
printf("%d ", a[i]); // 输出排序后的成绩
}
printf("\n");
return 0;
}
相关问题
用C语言写一个程序:从键盘输入10个学生的成绩,要求按照从大到小的顺序排列输出。...
好的,下面是用C语言编写的程序,可以实现你的要求:
```c
#include <stdio.h>
int main()
{
int score[10]; // 存储10个学生的成绩
int i, j, temp;
// 从键盘输入10个学生的成绩
for (i = 0; i < 10; i++)
{
printf("请输入第%d个学生的成绩:", i + 1);
scanf("%d", &score[i]);
}
// 冒泡排序,从大到小排列
for (i = 0; i < 9; i++)
{
for (j = 0; j < 9 - i; j++)
{
if (score[j] < score[j + 1])
{
temp = score[j];
score[j] = score[j + 1];
score[j + 1] = temp;
}
}
}
// 输出排序后的成绩
printf("按照从大到小的顺序排列后的成绩为:\n");
for (i = 0; i < 10; i++)
{
printf("%d\t", score[i]);
}
return 0;
}
```
程序的逻辑如下:
1. 定义一个长度为10的整型数组score,用于存储10个学生的成绩。
2. 循环10次,从键盘输入每个学生的成绩,存储到数组score中。
3. 使用冒泡排序算法,将数组score按照从大到小的顺序排列。
4. 循环10次,输出排列后的成绩。
希望能帮到你,有问题可以继续问我哦!
用C语言写一个程序:从键盘输入字符串,统计字符串中数字字符出现的次数并输出
下面是一个简单的 C 语言程序,可以实现从键盘输入字符串,统计字符串中数字字符出现的次数并输出:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, count = 0;
printf("请输入字符串:");
scanf("%s", str);
for (i = 0; i < strlen(str); i++) {
if (str[i] >= '0' && str[i] <= '9') {
count++;
}
}
printf("字符串中数字字符出现的次数为:%d\n", count);
return 0;
}
```
程序首先声明一个字符数组 `str`,用于存储输入的字符串。然后使用 `scanf` 函数从键盘读入字符串,存储到 `str` 数组中。
接着使用 `for` 循环遍历字符串中的每个字符,如果当前字符是数字字符,则将计数器 `count` 加 1。
最后输出计数器 `count` 的值,即字符串中数字字符出现的次数。
需要注意的是,这个程序只能统计 ASCII 码表中的数字字符,如果字符串中包含其他编码的数字字符,可能无法正确统计。同时,这个程序也没有对字符串长度进行限制,如果输入的字符串过长,可能会导致程序崩溃。