程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> C語言 調用函數求最大值問題

C語言 調用函數求最大值問題

編輯:C語言問答

C語言 調用函數求最大值問題

#include "stdafx.h"
#include "stdio.h"

int max(int a[10],int i)
{
int a[10];
int max=a[0];
for(i=1;i<10;i++)
if(max max=a[i];
return(max);
}
int main()
{
int i,a[10];
printf("請輸入10個數:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max(a[10],i);
printf("最大的數是:\n",max);

}

在調試的時候,出現這樣的情況:
請輸入10個數:
0 1 2 3 4 5 6 7 8 9
最大的數是:
按任意鍵結束。。。

為什麼會沒有輸出?是函數調用出了問題嗎?到底是哪裡的錯啊,本人是初學者,求告人指點!

好像還是不行,最好能重新寫一遍,看看你們的能不能運行的了

最佳回答:

您的程序有多處錯誤。既然是初學,就先把最基本的東西都弄清楚啊,否則別人都不願意幫您。簡單列出您的錯誤如下:

1)在max函數內又聲明了a[10],這和傳遞給max函數的參數同名。
2)在max函數內聲明了一個變量max,這與max函數又是同名,雖然不一定會出錯,但需要盡量避免啊。
3)int max(int a[], int i)是正確的寫法,不必寫int a[10]。
4)在主函數main中的max(a[10],i)就是錯誤的寫法了,把數組傳遞給函數時,只能寫數組名a,不能寫a[10],a[10]只代表了數組中的一個元素。
5)printf中的那個max,屬於未聲明就使用的變量,而且又與函數max同名。
給個修改後的程序,您自己對照吧。
6)printf函數沒指定最大值的輸出位置與格式。

#include "stdafx.h"
#include "stdio.h"

int max(int a[])//原代碼中將i傳遞進來,毫無必要
{
int maxv=a[0];//原代碼取max,與函數同名,要避免
int i;
for(i=1;i<10;i++)
if(maxv maxv=a[i];
return(maxv);
}
int main()
{
int i,a[10],maxvalue;
printf("請輸入10個數:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
maxvalue = max(a);//原代碼max(a[10],i),a[10]只會傳遞一個數而不是數組
printf("最大的數是:%d\n",maxvalue);//您別漏了%d啊
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved