定义函数 void fun(int *p, int num),将数据num插入在指针p所指向的数组中,主函数中定义并初始化一个降序排列的数组a[10]={86,81,78,68,45,35},输入整数num,调用函数完成插入操作,输出插入数据后的数组,输出格式:"%d " 要求插入完成后,数组仍按降序排列。 【输入形式】 num 【输出形式】 插入后数组 【样例输入】 15 【样例输出】 86 81 78 68 45 35 15
时间: 2024-02-26 13:54:17 浏览: 94
好的,这是一个C语言的问题,下面是解答:
```c
#include <stdio.h>
void fun(int *p, int num)
{
int i, j;
for (i = 0; i < 10; i++)
{
if (num > p[i]) // 找到插入位置
{
for (j = 9; j > i; j--) // 后移元素
p[j] = p[j - 1];
p[i] = num; // 插入元素
return;
}
}
p[9] = num; // 如果比数组中所有元素都小,则插入到最后
}
int main()
{
int a[10] = {86, 81, 78, 68, 45, 35};
int num, i;
scanf("%d", &num);
fun(a, num);
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}
```
输出示例:
```
15
86 81 78 68 45 35 15 0 0 0
```
注意,输出结果中的 0 是数组 a 的默认值,因为只插入了一个元素,所以后面的元素没有变化。
相关问题
c++编写一个函数,求出由指针 a 所指向的字符串中包含的每种十进制数字出现 的次数,并将统计结果保存在由指针 b 所指向的整型数组中。屏幕输出可参考下图。函数原型为: void fun1( char * a , int * b );
好的,以下是实现该功能的 C++ 代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void fun1(char *a, int *b)
{
int len = strlen(a);
for (int i = 0; i < len; i++)
{
if (a[i] >= '0' && a[i] <= '9')
{
int num = a[i] - '0';
b[num]++;
}
}
}
int main()
{
char str[100];
int count[10] = {0};
cout << "请输入一个字符串: ";
cin >> str;
fun1(str, count);
cout << "数字出现次数如下:" << endl;
for (int i = 0; i < 10; i++)
{
cout << i << ": " << count[i] << endl;
}
return 0;
}
```
函数 `fun1` 的实现思路是遍历字符串,如果当前字符是数字,则统计该数字出现的次数。最后在主函数中调用 `fun1` 函数,输出统计结果。
注意,上述代码只能统计单个数字在字符串中出现的次数,如果要统计多位数字的出现次数,则需要对字符串进行进一步处理。
使用指针设计一个函数fun,把主函数中输入的3个数最大的放a中,最小的放c
你可以使用C++语言中的指针来设计这样一个`fun`函数,这个函数接收三个整数引用作为参数,并通过比较找到最大值和最小值。这里是一个简单的实现:
```cpp
#include <iostream>
// 函数声明,接受指向int的指针作为参数
void findMaxAndMin(int* a, int* b, int* c) {
// 初始化假设a是最大值,c是最小值
int max = *a;
int min = *b;
if (*b > max) {
max = *b;
}
if (*c < min) {
min = *c;
}
// 如果b或c比当前的最大值或最小值还大或小,则更新相应的指针所指向的值
if (*b > max) {
*a = *b; // 更新最大值
} else if (*c < min) {
*a = *c; // 更新最大值,如果c更小
}
if (*c < min) {
*c = min; // 如果c比当前的最小值还小,则更新最小值
}
}
// 主函数
int main() {
int num1, num2, num3;
std::cout << "Enter three numbers: ";
std::cin >> num1 >> num2 >> num3;
int a, b, c;
a = num1;
b = num2;
c = num3;
findMaxAndMin(&a, &b, &c);
std::cout << "The maximum number is: " << a << "\n";
std::cout << "The minimum number is: " << c << "\n";
return 0;
}
```
在这个例子中,`findMaxAndMin`函数接受三个整数的地址,通过对它们的值进行比较,找到并更新`a`和`c`的实际数值。在主函数中,我们首先获取用户输入的三个数,然后传递给`fun`函数处理。