#include <stdio.h> #define ROW 3 #define COL 4 void stduents_name(char name[30]) { printf("请输入学生姓名:\n"); for(int i=0;i<3;i++) { scanf("%s",name[i]); } } void input_scores(int nums[][COL], int row ,char name[30]) { printf("请输入学生成绩:\n"); for (int i = 0; i < row; i++) { printf("第%d名学生成绩是: ", name[i]); for (int j = 0; j < COL; j++) { scanf("%d", &nums[i][j]); } } } void print_scores(int nums[][COL], int row) { printf("\n输入的学生成绩为:\n"); for (int i = 0; i < row; i++) { for (int j = 0; j < COL; j++) { printf("%5d", nums[i][j]); } printf("\n"); } } void calculate_sum(int nums[][COL], int sum[], int row) { for (int i = 0; i < row; i++) { sum[i] = 0; for (int j = 0; j < COL; j++) { sum[i] += nums[i][j]; } } } void bubble_sort(int nums[][COL], int sum[], int row) { int temp, temp_sum; for (int k = 0; k < row - 1; k++) { for (int i = 0; i < row - k - 1; i++) { if (sum[i] > sum[i + 1]) { temp_sum = sum[i]; sum[i] = sum[i + 1]; sum[i + 1] = temp_sum; for (int j = 0; j < COL; j++) { temp = nums[i][j]; nums[i][j] = nums[i + 1][j]; nums[i + 1][j] = temp; } } } } } int main() { int nums[ROW][COL]; int sum[ROW]; char name[30]; stduents_name(name); input_scores(nums, ROW, name); print_scores(nums, ROW); calculate_sum(nums, sum, ROW); bubble_sort(nums, sum, ROW); printf("\n排序后学生成绩为(由低到高):\n"); for (int i = 0; i < ROW; i++) { for (int j = 0; j < COL; j++) { printf("%5d", nums[i][j]); } printf("\n"); } return 0; }
时间: 2024-03-30 14:33:32 浏览: 14
这是一段 C 语言代码,主要实现了一个学生成绩排序的功能。首先通过 stduents_name 函数获取输入的学生姓名,然后通过 input_scores 函数获取学生的成绩信息并存储在 nums 数组中。接着通过 calculate_sum 函数计算每个学生的总成绩并存储在 sum 数组中,最后通过 bubble_sort 函数对学生的成绩进行排序并输出结果。整个程序可以在 main 函数中执行。
相关问题
用c语言编写一个会跳动的心形的程序,附上所爱的人的姓名
```c
#include <stdio.h>
#include <math.h>
#include <unistd.h>
#define NUM_OF_POINTS 100
void printHeartName(char *name) {
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("\t\t\t\t\t I love you, %s!\n\n\n\n\n\n\n\n\n\n\n", name);
}
void printHeart() {
int heart[NUM_OF_POINTS][2];
int i;
double x, y;
for (i = 0; i < NUM_OF_POINTS; i++) {
x = 16 * pow(sin(i), 3);
y = -((13 * cos(i)) - (5 * cos(2 * i)) - (2 * cos(3 * i)) - cos(4 * i));
heart[i][0] = round(x);
heart[i][1] = round(y);
}
for (int row = -20; row <= 20; ++row) {
for (int col = -40; col <= 40; ++col) {
int isHeartPixel = 0;
for (i = 0; i < NUM_OF_POINTS; i++) {
if (heart[i][0] == col && heart[i][1] == row)
isHeartPixel = 1;
}
if (isHeartPixel)
printf("*");
else
printf(" ");
}
printf("\n");
}
usleep(1000000);
system("clear");
}
int main() {
char name[100];
printf("请输入您爱的人的姓名:");
fgets(name, 100, stdin);
name[strlen(name) - 1] = '\0'; // 移除末尾换行符
while (1) {
printHeart();
printHeartName(name);
}
return 0;
}
```
这个程序可以用来绘制一个跳动的心形,并附上所爱的人的姓名。使用`c`语言编写。程序中通过计算心形上的每个点的坐标,然后遍历整个范围内所有的点,用星号表示心形上的点,用空格表示其他点,从而实现了在终端中绘制出一个心形。同时,通过`usleep(1000000)`函数使得终端每秒刷新一次,从而实现了心形跳动的效果。
c语言电影院售票系统设计
这是一个简单的电影院售票系统设计:
1. 定义电影票类,包含电影名称、放映时间、座位号等属性;
2. 定义座位类,包含座位号、是否已售等属性;
3. 定义电影类,包含电影名称、放映时间、座位等属性;
4. 定义电影院类,包含电影列表、座位列表等属性;
5. 根据用户输入的电影名称和放映时间,查询电影院中是否有对应的电影,并显示座位的状态;
6. 用户选择座位后,将座位状态修改为已售,并生成电影票并输出给用户。
以下是一个简单的 C 语言代码实现:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ROW 10
#define COL 10
typedef struct {
char name[30];
char time[20];
int seat[ROW][COL];
} Movie;
typedef struct {
int row;
int col;
int sold;
} Seat;
typedef struct {
Movie movie;
Seat seat[ROW][COL];
} Cinema;
void init(Cinema* cinema) {
memset(cinema, 0, sizeof(Cinema));
}
void add_movie(Cinema* cinema, char* name, char* time) {
strcpy(cinema->movie.name, name);
strcpy(cinema->movie.time, time);
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
cinema->seat[i][j].row = i;
cinema->seat[i][j].col = j;
cinema->seat[i][j].sold = 0;
}
}
}
void show_seats(Cinema* cinema) {
printf("Seats:\n");
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
printf("%d ", cinema->seat[i][j].sold);
}
printf("\n");
}
}
void sell_ticket(Cinema* cinema, int row, int col) {
if (cinema->seat[row][col].sold == 1) {
printf("This seat has been sold.\n");
return;
}
cinema->seat[row][col].sold = 1;
printf("Ticket:\n");
printf("Movie: %s\n", cinema->movie.name);
printf("Time: %s\n", cinema->movie.time);
printf("Seat: %d row %d col\n", row, col);
}
int main() {
Cinema cinema;
init(&cinema);
add_movie(&cinema, "Avengers: Endgame", "2022-01-01 10:00");
show_seats(&cinema);
sell_ticket(&cinema, 2, 3);
show_seats(&cinema);
return 0;
}
```
这里只是一个简单的实现,实际应用中还需要考虑更多因素,如多个电影、多个放映时间、售票系统等。