#include<stdio.h>
void main()
{
int n,x,i,s=0,max,min;
float avg;
printf("請輸入n的個數:");
scanf("%d",&n);
printf("請輸入數,數和數之間用空格隔開:");
min=max=x;
for(i=0;i<n;i++)
{
scanf("%d",&x);
s+=x;
avg=float (s/n);
if(x>max)
max=x;
if(x<min)
min=x;
}
printf("最大值=%d,最小值=%d,平均值%.2f\n",max,min,avg);
}
這個代碼演算出來一直算不了最小值,麻煩大佬們幫我解決一下。
uj5u.com熱心網友回復:
有幾個地方有問題,在你的基礎上略作改動,供參考#include<stdio.h>
int main()
{
int n,x,i,y,max,min;
float avg, s=0;
printf("請輸入n的個數:");
scanf("%d",&n);
printf("請輸入數,數和數之間用空格隔開:");
min=x;
max=0;
for(i=0;i<n;i++)
{
scanf("%d",&x);
s+=x;
if(x>max)
{
max=x;
}
if(x<min)
{
min=x;
}
}
avg = s/n;
printf("最大值=%d,最小值=%d,平均值%.2f\n",max,min,avg);
getchar();
return 0;
}
uj5u.com熱心網友回復:
min=max=x;問題在這,你這個時候還沒有給x賦值,所以這個值拿去后面判斷會導致結果錯誤,而且也不建議你把輸入和處理放在一塊寫。如果分開寫的話輸入完了min=max=arr[0];如果要就這樣的話,加個判斷,
for(i=0;i<n;i++)
{
scanf("%d",&x);
if(i==0){
min=max=x;
}
s+=x;
if(x>max)
{
max=x;
}
if(x<min)
{
min=x;
}
}
把初始化放在這,確保你的初始化是可控的,養成習慣
uj5u.com熱心網友回復:
兄弟,這個有點問題阿,最后的getchar沒啥用先不提,你的min=x;此時x依舊沒有正確的賦值,你這跟lz的問題一樣阿
uj5u.com熱心網友回復:
#include<stdio.h>void main()
{
int n,x,i,max,min;
float avg,s=0;
printf("請輸入n的個數:");
scanf("%d",&n);
printf("請輸入數,數和數之間用空格隔開:");
scanf("%d",&x);
max=min=x;
s+=x;
for(i=1;i<n;i++)
{
scanf("%d",&x);
s+=x;
if(x>max)
max=x;
if(x<min)
min=x;
}
printf("最大值=%d,最小值=%d,平均值%.2f\n",max,min,s/n);
}
昨天夜里已經解決了,但是各位大佬的建議我還是會一一看的
uj5u.com熱心網友回復:
最后的getchar();是卡一下螢屏的作用,有些編譯器黑視窗會一閃而過。
uj5u.com熱心網友回復:
這是我的代碼
#include<iostream>
using namespace std;
double big(double& a,double& b)
{
return a>b?a:b;
}
double small(double& a,double& b)
{
return a<b?a:b;
}
int main()
{
cout<<"您要輸入:"<<endl;
int q;
cin>>q;
cout<<"個數。"<<endl;
double a[q];
cout<<"請輸入:"<<endl;
for(int i=0;i<q;++i)
cin>>a[i];
double max=0.0,min=a[0];
double pingjun=0.0;
for(int i=0;i<q;++i)
{
max=big(a[i],max);
min=small(a[i],min);
}
double p=0.0;
for(int i=0;i<q;++i)
{
p+=a[i];
}
cout<<"max:"<<max<<endl;
cout<<"min:"<<min<<endl;
cout<<"sum:"<<p<<endl;
}
uj5u.com熱心網友回復:
已經除錯過了,沒問題。例子:
輸入:
2
3
9.4
輸出:
max:9.4
min:3
sum:12.4
uj5u.com熱心網友回復:
已經除錯過了,沒問題。
例子:
輸入:
2
3
9.4
輸出:
max:9.4
min:3
sum:12.4
我是剛學c語言的大一學生,所以我看不懂你的代碼
,還有我的問題是最大值最小值和平均值
,大佬你這只有和,沒有平均值

uj5u.com熱心網友回復:
這樣就好了
#include<iostream>
using namespace std;
double big(double& a,double& b)
{
return a>b?a:b;
}
double small(double& a,double& b)
{
return a<b?a:b;
}
int main()
{
cout<<"您要輸入:"<<endl;
int q;
cin>>q;
cout<<"個數。"<<endl;
double a[q];
cout<<"請輸入:"<<endl;
for(int i=0;i<q;++i)
cin>>a[i];
double max=0.0,min=a[0];
double pingjun=0.0;
for(int i=0;i<q;++i)
{
max=big(a[i],max);
min=small(a[i],min);
}
double p=0.0;
for(int i=0;i<q;++i)
{
p+=a[i];
}
pingjun=p/q;
cout<<"max:"<<max<<endl;
cout<<"min:"<<min<<endl;
cout<<"sum:"<<p<<endl;
cout<<"pingjun:"<<pingjun<<endl;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/91603.html
標籤:C++ 語言
上一篇:讀入三角形三條邊長。 如果輸入合法,就計算這個三角形的周長。否則, 提示輸入有誤。 如果任意兩條邊的和大于第三邊
