写一个利用冒泡排序法,对输入的10个数据按升序排序的c语言编程
时间: 2024-03-24 15:35:55 浏览: 62
以下是一个利用冒泡排序法对输入的10个数据按升序排序的C语言程序:
```c
#include <stdio.h>
int main() {
int arr[10], i, j, temp;
printf("请输入10个数字:\n");
// 读取输入数据
for (i = 0; i < 10; i++) {
printf("请输入第%d个数字:", i+1);
scanf("%d", &arr[i]);
}
// 冒泡排序
for (i = 0; i < 9; i++) {
for (j = 0; j < 9-i; j++) {
if (arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
// 输出排序后的结果
printf("排序后的结果为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
程序首先读取用户输入的10个数字,并使用冒泡排序法对它们进行排序。排序后,程序将结果输出到屏幕上。
相关问题
编程实现,从键盘输入任意10个整数,用冒泡法对这十个数进行升序排序(C语言)
在C语言中,你可以使用冒泡排序算法来实现这个功能。冒泡排序的基本思想是从数组的第一个元素开始,比较相邻两个元素,如果前一个比后一个大,则交换位置,一次遍历完成后再检查是否还有需要交换的元素,直到整个序列有序为止。以下是一个简单的示例:
```c
#include <stdio.h>
// 冒泡排序函数
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) { // 遍历所有数组元素
for (int j = 0; j < n - 1 - i; j++) { // 每次遍历到已排序部分为止
if (arr[j] > arr[j + 1]) { // 如果当前元素大于下一个元素
// 交换它们
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int num[10]; // 存储10个整数
printf("请输入10个整数:\n");
// 从键盘读取10个整数
for (int i = 0; i < 10; i++) {
scanf("%d", &num[i]);
}
// 对数组进行排序
bubbleSort(num, 10);
// 输出排序后的结果
printf("升序排列后的数组:");
for (int i = 0; i < 10; i++) {
printf("%d ", num[i]);
}
printf("\n");
return 0;
}
```
当你运行这个程序时,它会提示用户输入10个整数,然后按照冒泡排序的方式将它们升序显示出来。
编写一个c语言程序,要求如下:现在有三名学生的信息 学号 姓名 C语言成绩 高数 英语 14220103 张三 86 87 90 14220110 王十 67 78 79 14220101 李一 56 80 67 请编程完成如下功能: 1)从键盘输入三名学生信息 2)将三名学生的信息在屏幕上显示。 3)将以上学生信息存入文件D:\\stuInfo.dat二进制文件中。 4)编写函数sortonNo,功能为利用冒泡排序法,将第一题中的信息按学号升序排序。 5)编写函数sortonC,功能是利用选择排序法将第一题中的信息按C语言成绩降序排序。 6)从D:\\stuInfo.dat文件中读出下标为2的学生信息,在屏幕上进行显示。 要求main函数控制台,只负责变量的定义,调用函数input进行输入,output进行输出,save函数将数据存入D:\\stuInfo.dat二进制文件,sortonNo函数利用冒泡排序法,将信息按学号升序排序,sortonC函数利用选择排序法将信息按C语言成绩降序排序,read2函数从D:\\stuInfo.dat文件中读出下标为2的学生信息,在屏幕上进行显示。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char id[10];
char name[20];
int c_grade;
int math_grade;
int eng_grade;
} Student;
// 函数声明
void input(Student *students);
void output(Student *students);
void save(Student *students);
void sortonNo(Student *students);
void sortonC(Student *students);
void read2();
int main() {
Student students[3];
input(students); // 输入学生信息
output(students); // 输出学生信息
save(students); // 存储学生信息
sortonNo(students); // 按学号升序排序
output(students); // 输出排序后的学生信息
sortonC(students); // 按C语言成绩降序排序
output(students); // 输出排序后的学生信息
read2(); // 读取下标为2的学生信息
return 0;
}
void input(Student *students) {
for (int i = 0; i < 3; i++) {
printf("请输入第%d个学生的学号:", i+1);
scanf("%s", students[i].id);
printf("请输入第%d个学生的姓名:", i+1);
scanf("%s", students[i].name);
printf("请输入第%d个学生的C语言成绩:", i+1);
scanf("%d", &students[i].c_grade);
printf("请输入第%d个学生的高数成绩:", i+1);
scanf("%d", &students[i].math_grade);
printf("请输入第%d个学生的英语成绩:", i+1);
scanf("%d", &students[i].eng_grade);
}
}
void output(Student *students) {
printf("学号\t姓名\tC语言成绩\t高数成绩\t英语成绩\n");
for (int i = 0; i < 3; i++) {
printf("%s\t%s\t%d\t\t%d\t\t%d\n", students[i].id, students[i].name, students[i].c_grade, students[i].math_grade, students[i].eng_grade);
}
}
void save(Student *students) {
FILE *fp;
fp = fopen("D:\\stuInfo.dat", "wb");
if (fp == NULL) {
printf("文件打开失败\n");
exit(1);
}
fwrite(students, sizeof(Student), 3, fp);
fclose(fp);
}
void sortonNo(Student *students) {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2 - i; j++) {
if (strcmp(students[j].id, students[j+1].id) > 0) {
Student temp = students[j];
students[j] = students[j+1];
students[j+1] = temp;
}
}
}
}
void sortonC(Student *students) {
for (int i = 0; i < 2; i++) {
int max_index = i;
for (int j = i + 1; j < 3; j++) {
if (students[j].c_grade > students[max_index].c_grade) {
max_index = j;
}
}
Student temp = students[i];
students[i] = students[max_index];
students[max_index] = temp;
}
}
void read2() {
FILE *fp;
fp = fopen("D:\\stuInfo.dat", "rb");
if (fp == NULL) {
printf("文件打开失败\n");
exit(1);
}
Student student;
fseek(fp, sizeof(Student) * 2, SEEK_SET);
fread(&student, sizeof(Student), 1, fp);
printf("学号\t姓名\tC语言成绩\t高数成绩\t英语成绩\n");
printf("%s\t%s\t%d\t\t%d\t\t%d\n", student.id, student.name, student.c_grade, student.math_grade, student.eng_grade);
fclose(fp);
}
```
阅读全文