哈哈文案句子网—文案句子大全

哈哈文案句子网—文案句子大全

c语言逆序输出

59

关于C语言的逆序输出,根据不同的数据类型和场景,实现方法有所差异。以下是常见的几种情况及其实现方式:

一、数组元素的逆序输出

顺序输出后逆序输出

先按顺序输出数组元素,再逆序输出。例如输出0-9的数组:

```c

include

int main() {

int a;

for (int i = 0; i < 10; i++) a[i] = i;

printf("原来的顺序: ");

for (int i = 0; i < 10; i++) printf("%d ", a[i]);

printf("\n逆序排列后: ");

for (int i = 9; i >= 0; i--) printf("%d ", a[i]);

return 0;

}

```

输出结果:

```

原来的顺序: 0123456789

逆序排列后: 9876543210

```

输入数组后逆序输出

先从用户输入获取数组元素,再逆序输出。例如输入10个整数:

```c

include

int main() {

int arr;

printf("输入10个整数:");

for (int i = 0; i < 10; i++) scanf("%d", &arr[i]);

printf("逆序输出:");

for (int i = 9; i >= 0; i--) printf("%d ", arr[i]);

return 0;

}

```

二、文件内容的逆序输出

通过文件操作实现文件内容的逆序读取和输出:

```c

include

include

int main() {

FILE *fp = fopen("input.txt", "rb");

if (!fp) {

perror("无法打开文件");

return 1;

}

fseek(fp, 0, SEEK_END);

long length = ftell(fp);

fseek(fp, 0, SEEK_SET);

char buffer;

for (long i = length - 1; i >= 0; i--) {

fread(buffer, 1, 1, fp);

printf("%c", buffer);

}

fclose(fp);

return 0;

}

```

说明:

先获取文件长度,再从末尾向前读取字符并输出。

三、数字的逆序输出

整数逆序输出

通过取余和整除操作逆序输出个位数:

```c

include

int main() {

int num;

printf("输入一个正整数:");

scanf("%d", &num);

int length = 0;

while (num > 0) {

printf("%d", num % 10);

num /= 10;

length++;

}

printf("\n位数:%d

", length);

// 去除末尾的换行符

printf("\n逆序数字:%d

", num);

return 0;

}

```

示例输入4000,输出:

```

位数:4

逆序数字:4000

```

字符串逆序输出

通过字符数组逆序存储实现:

```c

include

include

int main() {

char str;

printf("输入字符串:");

fgets(str, sizeof(str), stdin);

int length = strlen(str);

for (int i = length - 1; i >= 0; i--) {

printf("%c", str[i]);

}

printf("

");

return 0;

}

```

示例输入"abcdefg",输出:

```

gfedcba

```

四、其他注意事项

数组越界:

逆序输出时需注意循环边界,避免访问非法内存。

数据类型限制:字符数组逆序时需以`'\0'`结尾,否则可能导致未定义行为。

输入验证:实际应用中应添加输入验证,如检查输入位数是否超过限制。

以上方法覆盖了常见的逆序输出场景,可根据具体需求选择合适的方法。