c语言如何遍历一个没有说明范围的数组
时间: 2024-02-23 08:58:56 浏览: 10
在 C 语言中,要遍历一个没有说明范围的数组,可以使用指针和指针运算符来实现。下面是一个示例代码:
```c
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5}; // 声明一个整型数组
int *p = arr; // 声明一个指向数组首元素的指针,指针变量名为 p,可以用数组名 arr 初始化指针 p
// 遍历数组,输出数组中的每一个元素
for (int i = 0; i < sizeof(arr) / sizeof(int); i++) {
printf("%d ", *(p + i)); // 使用指针运算符 * 和指针变量 p 遍历数组中的每一个元素
}
return 0;
}
```
在上面的代码中,首先声明了一个整型数组 arr,然后声明了一个指向数组首元素的指针 p,指针 p 被初始化为数组名 arr,这样指针 p 就指向了数组的第一个元素。接着使用 for 循环遍历数组,循环变量 i 控制循环次数,每次循环使用指针运算符 * 和指针变量 p 遍历数组中的每一个元素,并输出元素的值。
相关问题
C语言数组遍历所有排列方式
以下是C语言中数组遍历所有排列方式的示例代码:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
void permute(int arr[], int start, int end) {
int i;
if (start == end) {
for (i = 0; i <= end; i++) {
printf("%d ", arr[i]);
}
printf("\n");
} else {
for (i = start; i <= end; i++) {
swap(&arr[start], &arr[i]);
permute(arr, start + 1, end);
swap(&arr[start], &arr[i]);
}
}
}
int main() {
int arr[] = {1, 2, 3};
int n = sizeof(arr) / sizeof(arr[0]);
permute(arr, 0, n - 1);
return 0;
}
```
该示例代码使用递归方法实现了对给定数组的所有排列方式的遍历。在函数permute中,start和end分别表示要遍历的数组的起始和结束下标,i循环遍历数组中[start, end]范围内的元素,将每个元素逐个置于起始位置,然后对剩余的元素进行递归,继续寻找所有排列方式。递归结束后,将原数组还原到初始状态,以便进行下一次排列。当start等于end时,说明已经遍历完了所有元素,将当前数组打印出来即可。在主函数中,将要遍历的数组传入permute函数即可开始遍历。
用C语言把100以内素数存入数组
好的,以下是将100以内素数存入数组的C语言代码:
```c
#include <stdio.h>
int main() {
int prime_numbers[25]; // 定义素数数组
int count = 0; // 素数个数
for (int num = 2; num <= 100; num++) {
int is_prime = 1; // 标记是否是素数
for (int i = 2; i < num; i++) {
if (num % i == 0) {
is_prime = 0; // 不是素数
break;
}
}
if (is_prime) {
prime_numbers[count] = num;
count++;
}
}
printf("100以内的素数有:\n");
for (int i = 0; i < count; i++) {
printf("%d ", prime_numbers[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
100以内的素数有:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
```
这段代码使用了两个for循环,外层循环遍历2到100之间的所有数字,内层循环从2开始逐个除以当前数字,如果整除了就可以判断该数字不是素数,跳出内层循环。如果内层循环遍历完整个范围都没有整除,就说明当前数字是素数,将其添加到素数数组中。最后遍历素数数组并输出即可。注意,我们在定义素数数组时,数组大小为25,这是因为100以内的素数个数最多为25个,不过这个大小可以根据实际情况调整。