#include <stdio.h> #include <stdlib.h> int main() { // 读取第一行:整数 int a; scanf("%d", &a); getchar(); // 消耗换行符 // 读取第二行:长整数(使用long long确保存储1145141919810) long long b; scanf("%lld", &b); getchar(); // 消耗换行符 // 读取第三行:浮点数 float c; scanf("%f", &c); getchar(); // 消耗换行符 // 读取第四行:字符 char d; scanf("%c", &d); getchar(); // 消耗换行符 // 读取第五行:字符串(动态分配内存处理任意长度) int capacity = 10; int len = 0; char *str = (char*)malloc(capacity * sizeof(char)); if (str == NULL) { printf("内存分配失败\n"); return 1; } char ch; while ((ch = getchar()) != '\n' && ch != EOF) { // 动态扩展内存 if (len + 1 >= capacity) { capacity *= 2; char *temp = (char*)realloc(str, capacity); if (temp == NULL) { printf("内存扩展失败\n"); free(str); return 1; } str = temp; } str[len++] = ch; } str[len] = '\0'; // 字符串终止符 // 按要求输出所有内容 printf("%d\n", a); // 整数原样输出 printf("%lld\n", b); // 长整数原样输出 printf("%.1f\n", c); // 浮点数保留一位小数 printf("%c\n", d); // 字符原样输出 printf("%s\n", str); // 字符串原样输出 free(str); // 释放动态内存 return 0; }