编写一个函数,该函数的功能是将一个整数数组中的最大值与第一个元素交换。
#include
#include
#include
char * getline() //读取一行,动态分配内存,此函数在网上搜到的,遇到问题先搜搜:)
{
char * line = malloc(100), *linep = line;
size_t lenmax = 100, len = lenmax;
int c;
if(line == NULL)
return NULL;
for(;;) {
c = fgetc(stdin);
if(c == EOF)
break;
if(--len == 0) {
char * linen = realloc(linep, lenmax *= 2);
len = lenmax;
if(linen == NULL) {
free(linep);
return NULL;
}
line = linen + (line - linep);
linep = linen;
}
if((*line++ = c) == '
')
break;
}
*line = '\0';
return linep;
}
int main()
{
int N,temp,min,max;
char *s = NULL,*tok;
scanf("%d",&N);
s = getline();
while(N--)
{
s = getline();
tok = strtok(s," ");//用空格分割行字串
min = max = atoi(tok);
while(tok!=NULL)
{
tok = strtok(NULL," ");
if(tok==NULL)
break;
temp = atoi(tok);
if(temp>max)
max = temp;
if(temp<min)
min = temp;
}
printf("%d %d
",max,min);
free(s);
}
return 0;
}
int maxn(int a[], int n)
{
if (n == 1)
return a[0];
else
{
int m = maxn(a, n - 1);
return m > a[n-1] ? m : a[n-1];
}
}
给你代码如下:
#include<stdio.h>
#define N 10 // 定义数组元素为10个
void input(int a[]);
void abc(int a[]);
void output (int a[]);
int main ()
{
int num[N];
input (num); // 向指定数组中输入数据
abc (num); // 处理指定数组中的数据
output (num); // 输出指定数组中的数据
return 0;}
void input (int a[])
{
int i;
for (i = 0; i < N; i++)
{
scanf ("%d", &a[i]);
}
}
void abc(int a[])
{
int minValue = a[0];
int maxValue = a[0];
int minPosition = 0;
int maxPosition = 0;
int i;
for (i=1; i<N; i++)
{
if (a[i] < minValue) // 比最小值更小,则记住最小值和位置
{
minValue = a[i];
minPosition = i;
}
if (a[i] > maxValue) // 比最大值更大,则记住最大值和位置
{
maxValue = a[i];
maxPosition = i;
}
}
// 交换第一个元素和最大值
i = a[0];
a[0] = a[maxPosition];
a[maxPosition] = i;
// 交换最后一个元素和最小值
i = a[N-1];
a[N-1] = a[minPosition];
a[minPosition] = i;
}
void output (int a[])
{
int p;
for (p = 0; p < N; p++)
{
printf ("%d ", a[p]);
}
printf("
");
}
运行结果如下:
错误很多,而且都是常识性错误
最重要的错误:你的三个函数要处理的应该是同一个数组(同一个数组并不是名字相同就是同一个数组,),这里要用到把数组当参数传递给下一个要处理他的函数.
在main 函数函数中定义 int num[10];在main函数中调用的函数想处理这个数组就要获得该数组的首地址,而不是在定义同名函数,定义 int abc(int num[10]);调用abc(num);
不懂或要正确代码就追问
函数无返回值 无参数
所以abc和 输出函数 的数组没有初始化
并且里面的内容全部被舍弃
而且ABC函数里 if没加花括号
并且不明白楼主为什么把数组分成两半输入输出
弱弱的问一句
函数没学吧?
k=*max; //k存放最大值
*p=x[9];x[9]=k;k=*p; //这里却与最后一个元素交换
if(*p>*max) //这里标记了最大值,却没标记最小值
改为
{
if(*p>*max)
k=*max;
if(*m<*min)
l=*min;
}
*p=x[0];x[0]=l;l=*p;
*p=x[9];x[9]=k;k=*p;
改为
*max=x[0];x[0]=k;
*min=x[9];x[9]=l;
函数需要传参,不传参每个函数里面的数组都是独立的,在abc函数里的数组跟其他函数里的数组其实不是同一个数组
#include<iostream.h>
void main()
{
int A[10];
int i,min,max;
cout<<"请输入10个整数:"<<endl;
for(i=0;i<10;i++)
cin>>A[i];
int x=0;
min=A[0];
for(i=0;i<10;i++)
{
if(A[i]<min)
{
min=A[i];
x=i;
}
}
int y=0;
max=A[0];
for(i=0;i<10;i++)
{
if(A[i]>max)
{
max=A[i];
y=i;
}
}
cout<<"原来数组中的数是:"<<endl;
for(i=0;i<10;i++)
cout<<A[i]<<" ";
int z;
z=A[0];
A[0]=max;
A[y]=z;
z=A[9];
A[9]=min;
A[x]=z;
cout<<endl<<"数组中的最大值是:"<<max<<endl; cout<<"数组中的最小值是:"<<min<<endl;
cout<<"交换后的数组中的数是:"<<endl;
for(i=0;i<10;i++)
cout<<A[i]<<" ";
cout<<endl;}
...* ”号。编写一个函数fun,该函数的功能是将字符串中前导“ *_百度...
1、首先,我们定义一个反序函数 revStr,它的参数为一个字符指针。2、随后,获取传入的字符串的长度。3、接着定义一个临时字符变量,以便在交换首尾字符时使用。4、最后,通过一个循环,从头尾开始,逐个交换两头的字符。5、在主程序中来测试一下该函数。6、运行结果截图。可以看到,字符串123456789被...
写一个C语言函数?
以下是一个使用栈和队列的函数,用于提取字符串数组中的阿拉伯数字并将其倒序添加到原字符串的剩余部分末尾:使用示例:from collections import deque def extract_and_reverse_strings(strings):stack = []queue = deque()result = ""遍历字符串数组 for string in strings:for char in string:判断字...
matlab中如何写一个函数来计算方程式y=0.5exp(x\/3)-x*x* sin(x...
1. 首先,在MATLAB中创建一个新的.m文件。你可以使用任何文本编辑器来创建此文件,但通常我们会在MATLAB的命令窗口中直接创建。2. 在这个.m文件中,你可以定义一个函数。函数的定义需要以"function"开始,后面紧跟着函数的输出变量和输入变量。例如,如果你的函数名是`calculate_y`,那么你的函数定义可...
请编写一个函数fun( ),该函数的功能是:分别统计字符串中大写字母和小写...
int fun(char s[]){ int i, count = 0;for (i = 0; s[i] != '\\0'; i ++)if (s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z')count ++;return count;}
求帮忙写一个excel函数,条件筛选的。
一、 常规用法 公式:=VLOOKUP(F3,B2:D13,2,FALSE)二、 反向查找 公式:=VLOOKUP(F3,IF({1,0},B3:B13,A3:A13),2,FALSE)所谓反向查找就是用右边的数据去查找左边的数据,在这里我们利用IF函数构建了一个二维数组,然后在数组中进行查询 三、 多条件查找 公式:=VLOOKUP(F3&G3,IF({1,0},...
c语言 编写一个判断是否为水仙花数的函数,并通过调用该函数打印输出所有...
i,n=0,sum=0,cnt=0;n=number;while(n){ cnt++;n\/=10;} n=number;while(n){ i=n%10;sum+=(int)pow(i,cnt);n\/=10;} if(sum==number)return 1;else return 0;} void PrintN(int m,int n){ int i;for(i=m+1;i<n;i++)if(narcissistic(i))printf("%d\\n",i);} ...
写一个函数,输入十六进制数,输出相应的十进制数
方法一:include<stdio.h> include<math.h> include<string.h> void xtod(char s[]);\/\/定义转制函数 int main(){ char str[10];printf("Please enter Hex number:");\/\/输入一个字符串 scanf("%s",str);xtod(str);\/\/调用转制函数 return 0;} \/\/转制函数 void xtod(char s[]){ in...
编写一个函数文件(fun.m)该函数的输入参数为一个数组,函数功能为求
],intn){inti,j;floataver,sum=array[0],b;for(i=1;iarray[j])b=array[j];}return(b);}intmain(){floatscore[10],bleow[10],bl;inti;for(i=0;i<10;i++)scanf("%f",&score[i]);printf("\\n");bl=fun(score,10);printf("低于平均分的成绩:\\n",bl);return0;} ...
编写一个函数prim,要求判定正整数n是否为素数,调用上述函数,按每行十...
1.首先编制一个函数prim,用于判断正整数n是否为素数。该函数的函数头部分为:int prim(int n)函数体部分:(1)定义2个变量,一个变量是用于循环计数用的变量,另一个变量(假设用flag)是用于作为判断n是否为素数的标记(初值为1,表示为素数);(2)处理部分是一个循环结构,循环条件:初值为...
javascript请写一个函数,它可以接收计算任意多个数值参数,并且返回所有...
js函数有这样一个特殊的参数:arguments,它是传入的所有参数的集合,所以可以这样写:function add() { var res = 0;if (arguments) { for (var i=0;i<arguments.length;i++) { if (typeof arguments[i] == "number") { res += arguments[i];} } } console.log(res);} add(3,4...
丑崔欣美: #include "stdio.h" #include "stdlib.h" main() { int n,x=0,a[100]; printf("请输入转换的数和进制:\n"); scanf("%d",&n); while(n){ a[x++]=n%2; n/=2; } --x; while(x>=0) printf("%d",a[x--]); printf("\n"); system("pause"); } 再送你一个进...
富蕴县13582883837: 编写一个函数,其功能是将一个字符串中的小写字母变成为下一个小写字母, - ?
丑崔欣美: 简单..只需要一个简单的判断就行... 例如数组为a for(i=0;a[i]!='\0';i++) {if(((a[i]>='a')&&(a[i]<='z'))||((a[i]>='A')&&(a[i]<='Z'))) //先判断是否为字母,这是前提 {if(a[i]=='z')a[i]='a';else if(a[i]=='Z')a[i]='A';elsea[i]+=1; } }
富蕴县13582883837: 定义一个函数,该函数的功能是将一个十六进制数(字符串形式)转换为对应的十进制数;在文本框中输入一个 - ?
丑崔欣美: Private Sub Command1_Click() Text2.Text = getfactor(Text1.Text) End Sub Private Function getfactor(ByVal n As String) As String Dim i As Long, x As Long For i = 1 To Len(n) Select Case Mid(n, Len(n) - i + 1, 1) Case "0": x = x + 16 ^ (i - 1) * 0...
富蕴县13582883837: 编写函数,该函数的功能是求一个4*4方阵中最小元素的值,并将此值返 - ?
丑崔欣美: 什么语言,以下是C的,供参考:int minval(int *m, int rows = 4, int cols = 4) { int r,c,min = m[0,0]; for( r = 0; rif(min > m[ r, c ]) min = m[ r, c ]; } return min }
富蕴县13582883837: 请编写一个函数,其功能为:将一个给定的十进制正整数转换成二进制数值(16bit). - ?
丑崔欣美: 用不着编程转换.十进制正整数,进入到计算机,自然就是二进制数.
富蕴县13582883837: 编一函数,函数的功能是:将给定的一个数,插入到已排好序的数组中( - ?
丑崔欣美: 就是你要插入的数啊,e是形参.n是数组元素的个数
富蕴县13582883837: 编写一个函数,该函数的功能是判断一个整数是不是素数, - ?
丑崔欣美: 用java给你编写一个吧 import java.util.scanner; public class test24 {public boolean method(int num){//默认该整数是素数(质数)boolean flag = true;//判断的思想为,2到该数的前一个数如果没有可以被该数整除的则为质数,否则不为质数...
富蕴县13582883837: 请编写函数char* fun(char* str),该函数的功能是将str中的所有字母变成下一个字母,谢谢大家的帮助 - ?
丑崔欣美: char* fun(char* str) {int i=0; char c; while(*(str+i)!='\0') { c=*(str+i); if(c>='a'&&c { if (c=='z') { *(str+i)='a'; } else { *(str+i)=c+1-32; } } if(c>='a'&&c { if (c=='z') { *(str+i)='a'; } else { *(str+i)=c+1+32; } } i++; } return str; }
富蕴县13582883837: (3)编写一个函数atoi,其作用是将一个整数字符串转换成一个整数.要求函数调用形式为 - ?
丑崔欣美: #include int atoi(char digitStr[10]) { int a,b,c; for(a=0,b=0;a return(b); } void main() { char s[10]; int a,b; for(a=0;a b=atoi(s); printf("%d\n",b); } 我学C语言才半学期,不一定编得好,不好之处请指教......
富蕴县13582883837: 一道C语言题(1)编写一个函数,这个函数的功能是可以求出n个数当中的最大值;(2)在主函数中,从键盘上输入n个数,之后调用(1)中的函数,输出... - ?
丑崔欣美:[答案] #include #define N 10 int maximum(int a[],int n) { int temp=a[0],i; for(i=1;iif(tempreturn temp; } int main() { int a[N]; int i; for(i=0;iprintf("最大值为:%d",maximum(a,N)); return 0; }