您的程序有多處錯(cuò)誤。既然是初學(xué),就先把最基本的東西都弄清楚啊,否則別人都不愿意幫您。簡(jiǎn)單列出您的錯(cuò)誤如下:
創(chuàng)新互聯(lián)公司專注于桓仁網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供桓仁營(yíng)銷型網(wǎng)站建設(shè),桓仁網(wǎng)站制作、桓仁網(wǎng)頁設(shè)計(jì)、桓仁網(wǎng)站官網(wǎng)定制、小程序設(shè)計(jì)服務(wù),打造桓仁網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供桓仁網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
1)在max函數(shù)內(nèi)又聲明了a[10],這和傳遞給max函數(shù)的參數(shù)同名。
2)在max函數(shù)內(nèi)聲明了一個(gè)變量max,這與max函數(shù)又是同名,雖然不一定會(huì)出錯(cuò),但需要盡量避免啊。
3)int max(int a[], int i)是正確的寫法,不必寫int a[10]。
4)在主函數(shù)main中的max(a[10],i)就是錯(cuò)誤的寫法了,把數(shù)組傳遞給函數(shù)時(shí),只能寫數(shù)組名a,不能寫a[10],a[10]只代表了數(shù)組中的一個(gè)元素。
5)printf中的那個(gè)max,屬于未聲明就使用的變量,而且又與函數(shù)max同名。
給個(gè)修改后的程序,您自己對(duì)照吧。
6)printf函數(shù)沒指定最大值的輸出位置與格式。
#include "stdafx.h"
#include "stdio.h"
int max(int a[])//原代碼中將i傳遞進(jìn)來,毫無必要
{
int maxv=a[0];//原代碼取max,與函數(shù)同名,要避免
int i;
for(i=1;i10;i++)
if(maxva[i])
maxv=a[i];
return(maxv);
}
int main()
{
int i,a[10],maxvalue;
printf("請(qǐng)輸入10個(gè)數(shù):\n");
for(i=0;i10;i++)
scanf("%d",a[i]);
maxvalue = max(a);//原代碼max(a[10],i),a[10]只會(huì)傳遞一個(gè)數(shù)而不是數(shù)組
printf("最大的數(shù)是:%d\n",maxvalue);//您別漏了%d啊
}
#include"stdio.h"
voidInput_Max_Min(int*p,int*pl,int*ps){
inti;
printf("Pleaseenterthe10Numbers...\n");
for(*pl=*ps=i=0;i10;i++){//輸入10個(gè)整數(shù)并判斷大小
scanf("%d",p+i);
if(p[i]p[*ps])//
*ps=i;
if(p[i]p[*pl])//
*pl=i;
}
}
intmain(intargc,char*argv[]){
intm[10],ml,ms;
Input_Max_Min(m,ml,ms);//用數(shù)組首址和最大值及最小值位置記錄變量地址調(diào)用自定義函數(shù)
printf("TheMAXism[%d]==%d\nTheMINism[%d]==%d\n",ml,m[ml],ms,m[ms]);//輸出結(jié)果
return0;
}
擴(kuò)展資料
c語言函數(shù)求兩個(gè)數(shù)的最大值
聲明一個(gè)求兩個(gè)數(shù)最大值的函數(shù)
if(ab){
printf("最大值是%d",a);
}else{
printf("最大值是%d",b);
}
#includestdio.h
max(inta,intb){
//三木運(yùn)算來求出最大值
intz=ab?a:b;
printf("最大值是%d",z);
}
main(){
intx,y;
scanf("%d%d",x,y);
//調(diào)用max函數(shù)
max(x,y);
}
您的程序有多處錯(cuò)誤。既然是初學(xué),就先把最基本的東西都弄清楚啊,否則別人都不愿意幫您。簡(jiǎn)單列出您的錯(cuò)誤如下:
1)在max函數(shù)內(nèi)又聲明了a[10],這和傳遞給max函數(shù)的參數(shù)同名。
2)在max函數(shù)內(nèi)聲明了一個(gè)變量max,這與max函數(shù)又是同名,雖然不一定會(huì)出錯(cuò),但需要盡量避免啊。
3)int max(int a[], int i)是正確的寫法,不必寫int a[10]。
4)在主函數(shù)main中的max(a[10],i)就是錯(cuò)誤的寫法了,把數(shù)組傳遞給函數(shù)時(shí),只能寫數(shù)組名a,不能寫a[10],a[10]只代表了數(shù)組中的一個(gè)元素。
5)printf中的那個(gè)max,屬于未聲明就使用的變量,而且又與函數(shù)max同名。
給個(gè)修改后的程序,您自己對(duì)照吧。
6)printf函數(shù)沒指定最大值的輸出位置與格式。
#include "stdafx.h"
#include "stdio.h"
int max(int a[])//原代碼中將i傳遞進(jìn)來,毫無必要
{
int maxv=a[0];//原代碼取max,與函數(shù)同名,要避免
int i;
for(i=1;i10;i++)
if(maxva[i])
maxv=a[i];
return(maxv);
}
int main()
{
int i,a[10],maxvalue;
printf("請(qǐng)輸入10個(gè)數(shù):\n");
for(i=0;i10;i++)
scanf("%d",a[i]);
maxvalue = max(a);//原代碼max(a[10],i),a[10]只會(huì)傳遞一個(gè)數(shù)而不是數(shù)組
printf("最大的數(shù)是:%d\n",maxvalue);//您別漏了%d啊
}
#include?stdio.h
#include?conio.h
void?array_input?(int?array[],?int?n);
int?max?(int?array[],?int?n);
int?main?(void)?{
int?array[10];
printf?("請(qǐng)輸入10個(gè)數(shù)據(jù):");
array_input?(array,?10);
printf?("10個(gè)元素最大值:%d\n",?max?(array,?10));
getch?();?/*屏幕暫留*/
return?0;
}
/*?輸入數(shù)組?*/
void?array_input?(int?array[],?int?n)?{
int?i;
for?(i=0;?in;?i++)
scanf?("%d",?array[i]);
putchar?('\n');
}
/*?計(jì)算數(shù)組最大值?*/
int?max?(int?array[],?int?n)?{
int?i;
int?max?=?array[0];
for?(i=0;?in;?i++)?{
if?(array[i]??max)
max?=?array[i];
}
return?max;
}
#includestdio.h
int Max(int a[],int n)
{
int s,max=0;
for(s=1;s=9;s++)//逐個(gè)循環(huán)進(jìn)行比較大小找出最大值
{
if(a[max]a[s])
max=s;
}
return max;
}
int Min(int a[],int c)
{
int d,min=0;
for(d=1;d=9;d++)
{
if(a[min]a[d])
min=d;
}
return min;
}
main()
{
int a[10],i,n;
printf("請(qǐng)任意輸入10個(gè)數(shù)字\n");
for(i=0;i10;i++)
scanf("%d",a[i]);
int larger;
larger=Max(a,10);//調(diào)用Max函數(shù)找出最大值并賦值
printf("最大數(shù)為%d\n",a[larger]);
int smaller;
smaller=Min(a,10);
printf("最小數(shù)為%d\n",a[smaller]);
n=a[larger];
a[larger]=a[smaller];
a[smaller]=n;
for(i=0;i10;i++)
printf("%2d",a[i]);
}
自定義函數(shù)實(shí)現(xiàn)
int max(int a,int b)
{
return ab?a:b;
}