您的程序有多處錯誤。既然是初學(xué),就先把最基本的東西都弄清楚啊,否則別人都不愿意幫您。簡單列出您的錯誤如下:
商州ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
1)在max函數(shù)內(nèi)又聲明了a[10],這和傳遞給max函數(shù)的參數(shù)同名。
2)在max函數(shù)內(nèi)聲明了一個變量max,這與max函數(shù)又是同名,雖然不一定會出錯,但需要盡量避免啊。
3)int max(int a[], int i)是正確的寫法,不必寫int a[10]。
4)在主函數(shù)main中的max(a[10],i)就是錯誤的寫法了,把數(shù)組傳遞給函數(shù)時,只能寫數(shù)組名a,不能寫a[10],a[10]只代表了數(shù)組中的一個元素。
5)printf中的那個max,屬于未聲明就使用的變量,而且又與函數(shù)max同名。
給個修改后的程序,您自己對照吧。
6)printf函數(shù)沒指定最大值的輸出位置與格式。
#include "stdafx.h"
#include "stdio.h"
int max(int a[])//原代碼中將i傳遞進來,毫無必要
{
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("請輸入10個數(shù):\n");
for(i=0;i10;i++)
scanf("%d",a[i]);
maxvalue = max(a);//原代碼max(a[10],i),a[10]只會傳遞一個數(shù)而不是數(shù)組
printf("最大的數(shù)是:%d\n",maxvalue);//您別漏了%d啊
}
自定義函數(shù)實現(xiàn)
int max(int a,int b)
{
return ab?a:b;
}
#include stdio.h
#include stdlib.h
int main()
{
int n,a,max,i;
scanf("%d",n);
scanf("%d",max);
for(i=1;in;i++)
{
scanf("%d",a);
if(amax)max=a;
}
printf("%d",max);
return 0;
}
#includestdio.h
int Max(int a[],int n)
{
int s,max=0;
for(s=1;s=9;s++)//逐個循環(huá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("請任意輸入10個數(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]);
}