用C语言实现:2.利用指针找出10个数中的最大数及其位置。
时间: 2023-06-14 11:07:57 浏览: 69
下面是用C语言实现的代码:
```c
#include <stdio.h>
void findMax(int arr[], int size, int *max, int *pos);
int main() {
int arr[10] = {12, 35, 1, 56, 23, 67, 8, 90, 43, 21};
int max, pos;
findMax(arr, 10, &max, &pos);
printf("最大数是 %d,位置是 %d\n", max, pos);
return 0;
}
void findMax(int arr[], int size, int *max, int *pos) {
int i;
*max = arr[0];
*pos = 0;
for(i = 1; i < size; i++) {
if(arr[i] > *max) {
*max = arr[i];
*pos = i;
}
}
}
```
这个程序定义了一个 `findMax` 函数,用于找到数组中的最大数及其位置。该函数接受一个整型数组,数组大小,以及两个指针作为参数。该函数使用了指针来返回最大数和位置。在 `main` 函数中,我们调用 `findMax` 函数来查找数组中的最大数及其位置,并将结果打印出来。
相关问题
请用C语言编写如下程序:利用指针找出10个数中最大数及其位置
以下是利用指针找出10个数中最大数及其位置的C语言程序:
```c
#include <stdio.h>
int main() {
int num[10] = {5, 7, 3, 9, 2, 8, 1, 6, 4, 0};
int *p = num;
int max = *p;
int index = 0;
for (int i = 1; i < 10; i++) {
if (*(p+i) > max) {
max = *(p+i);
index = i;
}
}
printf("最大数为:%d,其位置为:%d\n", max, index);
return 0;
}
```
输出结果为:
```
最大数为:9,其位置为:3
```
程序中定义了一个整型数组 `num`,并初始化了10个数。定义了指向 `num` 数组的指针 `p`,并将其指向数组的第一个元素。使用指针遍历整个数组,找出最大值及其位置,最后输出结果。
用C语言实现:4.利用指针分别统计一串字符中的大、小写字母的个数。
下面是用C语言实现统计一串字符中的大、小写字母的个数的代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int upper = 0, lower = 0;
char *p;
printf("请输入一串字符:");
fgets(str, 100, stdin);
p = str;
while (*p) {
if (isupper(*p)) {
upper++;
} else if (islower(*p)) {
lower++;
}
p++;
}
printf("大写字母个数:%d\n", upper);
printf("小写字母个数:%d\n", lower);
return 0;
}
```
首先,定义一个字符数组 `str` 存储输入的一串字符,定义两个变量 `upper` 和 `lower` 分别用于统计大写字母和小写字母的个数,定义一个字符指针 `p` 指向字符数组 `str`。
然后,使用 `fgets` 函数从标准输入(键盘)读取一串字符,最多读取 100 个字符,存储到 `str` 数组中。
接着,使用 `while` 循环遍历字符数组 `str` 中的每个字符,如果是大写字母,则 `upper` 自增 1,如果是小写字母,则 `lower` 自增 1。
最后,输出大写字母个数和小写字母个数。
需要注意的是,判断字符是否是大写字母或小写字母需要使用 `ctype.h` 头文件中的 `isupper` 和 `islower` 函数。