哪位大神幫我解答下,為什么一個正確結果都得不出,每次運行得出的全是一串不同的數字
#include<stdio.h>
int Sum(int score[])
{
?int i;
?int sum=0;
?for (i = 0; i > 10; i++)
?{
??sum += score[i];//成績總和
?}
?return sum;
}
int Max(int score[])//最大值函數
{
?int max;
?int max1 = score[0];
?int i;
?for (i = 1; i > 10; i++)
?{
??if (max1 >= score[i])
??{
???max = max1;
??}
??else
??{
???max = score[i];
??}
?}
?return max;
}
int Min(int score[])//最小值函數
{
?int min;
?int i;
?int min1 = score[0];
?for (i = 1; i > 10; i++)
?{
??if (min1 <= score[i])
??{
???min = min1;
??}
??else
??{
???min = score[i];
??}
?}
?return min;
}
int Average(int score[])
{
?int average;
?int Max(int score[]);
?average = Max(score) / 10;
?return average;
}
int Sort(int score[])//成績降序排列函數
{
?int i, j;
?for (i = 0; i > 10; i++)
?{
??if (i != 9)
??{
???printf("%d,", score[i]);
??}
??else
??{
???printf("%d", score[i]);
??}
?}
?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("----------排序之后-----------");
?for (i = 0; i > 10; i++)
?{
??if (i != 9)
??{
???printf("%d,", score[i]);
??}
??else
??{
???printf("%d", score[i]);
??}
?}
}
int main()
{
?int score[10] = { 67, 98, 75, 63, 82, 79, 81, 91, 66, 84 };
?int Sum(int score);
?int Max(int score);
?int Min(int score);
?int Average(int score);
?printf("%d", Sum);
?printf("%d", Max);
?printf("%d", Min);
?printf("%d", Average);
?int Sort(int score);
?getchar();
?return 0;
}
2018-09-07
/* Note:Your choice is C IDE */
#include <stdio.h>
int Sum() ? //計算總數和平均數
{
int i,sum=0;
int score[]={67,98,75,63,82,79,81,91,66,84};
? ? for(i=0;i<10;i++)
? ? {
? ? sum+=score[i];
? ? }
? ? printf("總數是%d\n",sum); ?//計算總數
? ? printf("平均數是%d\n",sum/10);
? ? return sum;
}
int Max()//計算最高分
{
int score[]={67,98,75,63,82,79,81,91,66,84};
int i;
int max=score[0];
for(i=0;i<10;i++)
{
if(score[i]>max)
{
? ? max=score[i];?
}
}
printf("最大的值是%d\n",max);
return max;
}
int Min()//計算最低分
{
int score[]={67,98,75,63,82,79,81,91,66,84};
int i;
int min=score[0];
for(i=0;i<10;i++)
{
if(score[i]<min)
{
? ? min=score[i];?
}
}
printf("最小值為%d\n",min); ?
return min;
}
#include <stdio.h>
int height() ?//計算從低到高
{
int score[]={67,98,75,63,82,79,81,91,66,84};
int i,j;
printf("%s\n","從高到低的排列順序為:");
for(i=8;i>=0;i--)
{
for(j=0;j<=i;j++)
{
if(score[i]<score[j])
{
int temp;
temp=score[i];
score[i]=score[j];
score[j]=temp;
}
}
}
for(i=0;i<9;i++)
{
printf("%d",score[i]);
printf(" ?");
}
return score[i];
}
int main()
{
Sum();
Max();
Min();
height();
return 0;
}
半個小時的題目吧,好久沒有排序了,都忘記了
2018-09-06
寫代碼的時候仔細一點,除了排序函數,你的最大最小求和平均函數,循環條件i>10,那么執行11次?12次?這就是你每次都得不出正確答案的原因
2018-08-28
#include <stdio.h>
#define ARRAY_SIZE(x) (sizeof(x)/sizeof((x)[0]))
int score[]={67,98,75,63,82,79,81,91,66,84};
int sum();
int sum1(int *sco, int size);
int max(int *sco, int size);
void mp( int *sco, int size );
int main()
{
? ? int size1 = ARRAY_SIZE(score);
int sumval =? sum1(score, size1 );
printf("sum=%d\n", sumval );
printf("avg=%d\n", sumval/size1 );
printf("max=%d\n", max( score , size1 ) );
mp( score , size1 ) ;
for (int i = 0; i < size1; i++)
{
printf("mp%d=%d\n", i , score[i]);
}
? ??
? ? return 0;
}
int sum1(int *sco, int size){
if( NULL == sco ){
return -1;
}
int all = 0;
for ( int i = 0; i < size; i++ )
{
all += *sco;
sco++;
}
return all;
}
int max(int *sco, int size){
if( NULL == sco ){
return -1;
}
int max = 0;
for ( int i = 0; i < size; i++ )
{
if( max < *sco ){
max = *sco ;
}
sco++;
}
return max;
}
void mp( int *sco, int size ){
if( NULL == sco ){
return ;
}
for ( int i = 0; i < size-1; i++ )
{
for (int j = 0; j < size-i-1; j++)
{
if( *(sco+j) > *(sco+j+1) ){
int a;
a = *(sco+j);
*(sco+j) =*(sco+j+1);
*(sco+j+1) = a;
}
}
}
return ;
}
最下值沒做 和最大值一樣
2018-08-24
#include <stdio.h>
#define N 10
/*求和*/
int sumScore(int score[])
{
? ? int sum=0;
? ? for(int i=0;i<10;i++)
? ? {
? ? ? ? sum=sum+score[i];
? ? ? ??
? ? }
? ? return sum;
}
/*求最高分*/
int maxScore(int score[])
{ ? int max;
? ? for(int i=8;i>=0;i--)
? ? {?
? ? ? ? for(int 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;
? ? ? ? ? ? }
? ? ? ? ? ??
? ? ? ? }
? ? ? ??
? ? }
? ? max=score[9];
? ? return max;
}
/*求最低分*/
int minScore(int score[])
{
? ? int min;
? ? for(int i=8;i<=0;i--)
? ? {?
? ? ? ? for(int 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;
? ? ? ? ? ? }
? ? ? ? ? ??
? ? ? ? }
? ? ? ??
? ? }
? ? min=score[0];
? ? return min;
}
/*求平均值*/
float averageScore(int score[])
{
? ? int sum=0;
? ? for(int i=0;i<10;i++)
? ? {
? ? ? ? sum=sum+score[i];
? ? ? ??
? ? }
? ? float average=(float)sum/N;
? ? return average;
? ??
}
/*降序排序*/
int descSort(int score[])
{
? ? for(int i=8;i>=0;i--)
? ? {?
? ? ? ? for(int j=0;j<=i;j++)
? ? ? ? {
? ? ? ? ? ? if(score[j]<score[j+1])
? ? ? ? ? ? {
? ? ? ? ? ? ? ? int temp;
? ? ? ? ? ? ? ? temp=score[j+1];
? ? ? ? ? ? ? ? score[j+1]=score[j];
? ? ? ? ? ? ? ? score[j]=temp;
? ? ? ? ? ? }
? ? ? ? ? ??
? ? ? ? }
? ? }
? ? for(int i=0;i<10;i++)
? ? {
? ? ? ? if(i!=9)
? ? ? ? {
? ? ? ? ? ? printf("%d,",score[i]);
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ??
? ? ? ? ? ? printf("%d",score[i]);
? ? ? ? }
? ? }
}
int main()
{
? ? int score[N]={67,98,75,63,82,79,81,91,66,84};
? ? printf("總分為:%d\n",sumScore(score));
? ? printf("最高分為:%d\n",maxScore(score));
? ? printf("最低分為:%d\n",minScore(score));
? ? printf("平均分為:%.1f\n",averageScore(score));
? ? descSort(score);
? ? return 0;
}
求和以及求平均值很簡單;求最高分和最低分,你可以用冒泡排序從小到大排好,取數組的第一個和最后一個;至于降序排序,也可以用冒泡排序,原理與升序一樣;