PDA

View Full Version : مبتدی: بدست آوردن مد



mothermohammad
چهارشنبه 22 اردیبهشت 1389, 16:22 عصر
من این برنامه رو برای به دست آوردن مد و میانه و میانگین نوشتم تو قسمت مدش اشکال دارم می شه راهنمایی کنید



#include <stdio.h>
#include <conio.h>
#include <string.h>
void miyane(int x[]);
void averag(int x[]);
void mod(int x[]);
int sum=0,b;
float ave,m;
void main() {
int x[10];
for(int i=0;i<10;i++) {
printf("dade ra vared kon:");
scanf("%d",&x[i]); }
averag(x);
miyane(x);
mod(x);
}
//*******************************
void averag(int x[10]) {
for(int i=0;i<10;i++)
sum+=x[i];
ave=(float)sum/10;
printf("miyangin barabar ast ba:%6.2f\n",ave); }
//*******************************
void miyane(int x[10]) {
int temp;
for(int i=9;i>0;i--)
for(int l=0;l<i;l++){
if(x[l]>x[l+1]){
temp=x[l];
x[l]=x[l+1];
x[l+1]=temp; }//end of if
}//end of for
m=(float)((x[4]+x[5])/2);
printf("miyane barabar ast ba:%6.2f\n",m); }
//********************************************
void mod(int x[10]){
int n=0,y=0,corse,p[10];
for(int u=0;u<10;u++) {
if(x[u]==x[u+1]){
corse=x[u];
y++;
p[y]=y;}
else
y=0; }
for(int w=0;p[w];w++)
printf("\nmod barabar ast ba:%d",p[w]);
for(int q=0;q<10;q++)
printf("\n%d",x[w]);
}
//******************************

mohsensaghafi
چهارشنبه 22 اردیبهشت 1389, 21:11 عصر
سلام دوست عزیز
مشکل در این خط برنامه هست


if(x[u]==x[u+1]){

چون زمانی که متغیر حلقه به عدد 9 می رسه شما در قسمت شرط if داری خونه 10هم از یه آرایه 10 خونه ای رو چک می کنی.
دسترسی غیر مجاز به حافظه داری.