本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。使用c语言简单编写
时间: 2024-10-14 09:11:48 浏览: 5
在C语言中,你可以通过结构体和指针来完成这个任务,因为C语言本身并不支持直接的按值存储或排序元素。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
float f;
int i;
char c;
} Data;
void swap(Data* a, Data* b) {
Data temp = *a;
*a = *b;
*b = temp;
}
int main() {
Data numbers[4];
// 顺序读取
for (int i = 0; i < 4; ++i) {
if (scanf("%f", &numbers[i].f) == EOF) break; // 浮点数
if (scanf("%d", &numbers[i].i) != EOF && i < 3) continue; // 整数
if (i < 2) scanf(" %c", &numbers[i].c); // 字符
}
if (numbers[2].c != '\n') { // 确保所有数据已读完
printf("Input format error\n");
return 1;
}
// 按要求顺序调整
swap(&numbers[2], &numbers[3]); // 将字符放到最后
swap(&numbers[1], &numbers[2]); // 将整数移到字符之前
// 输出结果
for (int i = 0; i < 4; ++i) {
switch(i) {
case 0: printf("%.2f ", numbers[i].f);
case 1: printf("%d ", numbers[i].i);
case 2: printf("%c ", numbers[i].c);
case 3: printf("%.2f\n", numbers[i].f);
}
}
return 0;
}
阅读全文