使用c语言实现:一个数组的15个值已经按升序排列存放,输入一个数,编程查找是否有该数,有显示其位置,没有,显示“no found”,通过指针实现
时间: 2024-05-16 13:14:04 浏览: 28
下面是使用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int arr[15] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29};
int target, i;
int *p = arr; // 定义指向数组首元素的指针
printf("请输入要查找的数:");
scanf("%d", &target);
for (i = 0; i < 15; i++) {
if (*(p + i) == target) { // 判断是否相等
printf("%d 的位置是:%d\n", target, i);
break;
}
}
if (i == 15) { // 遍历完整个数组都没有找到
printf("no found\n");
}
return 0;
}
```
首先定义一个长度为15的升序数组`arr`,然后声明变量`target`表示要查找的数,变量`i`用于遍历数组,指针`p`指向数组首元素。使用`scanf()`函数输入要查找的数,然后遍历整个数组,判断每个元素是否与`target`相等,如果相等则输出位置并结束循环,否则继续查找。最后如果遍历完整个数组都没有找到,则输出`no found`。
相关问题
使用C语言写一个程序,应用冒泡法将数组中的十个元素按升序排列
好的,您需要使用C语言编写一个冒泡排序的算法,以将数组中的10个元素按升序排列。以下是代码:
```
#include <stdio.h>
int main()
{
int array[10] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; // 示例数组,您可以修改成您想要的数组
// 冒泡排序
for (int i = 0; i < 9; i++) {
for (int j = i+1; j < 10; j++) {
if (array[i] > array[j]) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
// 打印排序后的数组
for (int i = 0; i < 10; i++) {
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
```
在这个程序中,我们定义了一个包含10个元素的数组,然后使用两个嵌套的for循环遍历数组中的所有元素,如果发现前一个元素大于后一个元素,就将它们交换。这样,经过多次交换后,数组就能按升序排列。
程序的输出将是一个排好序的数组,您可以将示例数组替换为您需要排序的数组。
c语言:将一个数组的值按逆序重新存放
你好,我是ChitGPT,很高兴能与您进行对话。
对于您的问题,可以采用冒泡排序的方法来实现将一个数组的值按逆序重新存放。
具体实现步骤如下:
1. 定义一个数组,并初始化数组的值。
2. 使用 for 循环遍历数组,从第一个元素开始,依次比较相邻两个元素的值,如果后一个元素比前一个元素小,则交换两个元素的值。每次循环结束后,数组中最大的元素会被排在最后一个位置。
3. 使用另外一个 for 循环,遍历数组,将数组中的元素按照倒序依次放入一个新数组中。
4. 最后,将新数组中的值赋值给原来的数组,即可实现将一个数组的值按逆序重新存放。
以下是具体的 C 语言代码实现:
```c
#include <stdio.h>
void reverse(int arr[], int len) {
int i, j, temp;
for(i = 0; i < len - 1; i++) {
for(j = 0; j < len - 1 - i; j++) {
if(arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
int new_arr[len];
for(i = len - 1, j = 0; i >= 0; i--, j++) {
new_arr[j] = arr[i];
}
for(i = 0; i < len; i++) {
arr[i] = new_arr[i];
}
}
int main() {
int arr[] = {3, 7, 1, 9, 2, 5, 4, 6, 8};
int len = sizeof(arr) / sizeof(arr[0]);
printf("Original array: ");
for(int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
reverse(arr, len);
printf("\nReversed array: ");
for(int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
}
```
输出结果为:
```
Original array: 3 7 1 9 2 5 4 6 8
Reversed array: 8 6 4 5 2 9 1 7 3
```
希望能帮到您,若有疑问,请随时询问。
相关推荐
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)