我的代碼哪里錯(cuò)了??找不到原因啊,我把降序的代碼單獨(dú)拿出來就是ok的完全摸不著頭腦啊。。。。
#include <stdio.h>
int zongfen(int score[])
{
??? int i=0,sum=0;
??? while(i<10){
??????? sum+=score[i];
??????? i++;
??? }
??? double aver;
??? aver=sum/10;
??? printf("總分是:%d\n",sum);
??? printf("平均分是:%f\n",aver);
}
int maxmin(int score[])
{
??? int i,max=0;
??? int min=score[0];
??? for(i=0;i<10;i++){
??????? if(score[i]>max){
??????????? max=score[i];
??????? }
??????? if(score[i]<min){
??????????? min=score[i];
??????? }
??? }
??? printf("最高分是:%d,最低分是:%d\n",max,min);
}
int jiangxu(int score[])
{
??? int i,j;
??? for(i=8;i>=0;i--){
??????? for(j=0;j<i;j++){
??????????? if(score[j]>score[j+1]){
??????????????? int temp;
??????????????? temp=score[j];
??????????????? score[j]=score[j+1];
??????????????? score[j+1]=temp;
??????????? }
??????? }
??? }
???printf("下面是成績降序\n");
??? for(i=0;i<10;i++){
??? ?printf("%d ",jiangxu(score));
?}
?printf("\n");?
}
int main()
{
??? int i,score[10]={67,98,75,63,82,79,81,91,66,84};
??? zongfen(score);
??? maxmin(score);
? ??jiangxu(scoer);
??? return 0;
}
2015-08-17
第一,調(diào)用?jiangxu(scoer);函數(shù)時(shí)你傳遞的參數(shù)寫錯(cuò)了,score,不是scoer
第二,你要的是降序效果,可是你在比較代碼中卻升序了
第三,冒泡降序函數(shù)中 i 從 8 開始,那你第一趟冒泡只能比較到數(shù)組的第八個(gè)元素,而你數(shù)組有十個(gè)元素,最后兩個(gè)元素與其他元素根本就沒有比較過,因此 i 應(yīng)該從 9 開始,這樣第一趟比較 9 次,后面每一趟依次減少 1?
下面是修改了你的代碼,可以參考,希望對(duì)你有所幫助: )
2015-08-16
[]應(yīng)該要用成()
2015-08-16
因?yàn)橛⑽暮軤€所以用拼音代替了