输入10个数,然后对这10个数进行排序、求平均值,输出10个数
#include<stdio.h>
#define N 10
void A();
void B();
void C();
void D();
void main()
{
int select;
do
{
printf(" 调用4个函数(作业题2) ");
printf("\n0.退出\n1.输入10个数\n2.进行排序\n3.求平均值\n4.输出这些数.\n");
printf("功能选择:");
scanf("%d",&select);
if(select==0)
break;
switch(select)
{
case 1:A();break;
case 2:B();break;
case 3:C();break;
case 4:D();break;
default:printf("输入有误,请在0--5之间选择.\n");
}
}while(1);
}
void A()//输入10个数
{
int i,num[N];
printf("\n请输入%d个数字:",N);
for(i=0;i<N;i++)
scanf("%d",&num[i]);
printf("\n您输入的%d个数为:",N);
for(i=0;i<N;i++)
scanf("%d",&num[i]);
}
void B()//进行排序
{
int i,j;
int grade[N],temp;
for(i=0;i<N;i++)
{
for(j=0;j<N-i-1;j++)
{
if(grade[j]<grade[j+1])
{
/*交换元素*/
temp=grade[j+1];
grade[j+1]=grade[j];
grade[j]=temp;
}
}
}
printf("\n这10个数字排序后为:\n");
for(i=0;i<N;i++)
{
printf("%d",grade[i]);
}
}
void C()//求平均值
{
int i,arr[N];
float ping;
for(i=0;i<N;i++)
scanf("%d",&arr[i]);
for(i=0;i<N;i++)
{
ping=arr[i]/N;
}
printf("\n这10个数的平均值为:%.2f",ping);
}
void D()//输出这10个数
{
int i,num[N];
printf("\n这10个数为:");
for(i=0;i<N;i++)
{
scanf("%d",&num[i]);
}
}
----------------解决方案--------------------------------------------------------
......
你哪里有问题呀?
你的0选项咧?
----------------解决方案--------------------------------------------------------
表开玩笑了嘛?这个题很急的
----------------解决方案--------------------------------------------------------
没开玩笑...你里面的问题不少咧...
函数要传递好伐???
----------------解决方案--------------------------------------------------------
谢谢你的提醒!
我有改了改
帮看看
#include<stdio.h>
#define N 10
void A(int a[N]);
void B(int b[N]);
void C(int c[N]);
void D(int d[N]);
void main()
{
int select;
do
{
printf(" 调用4个函数(作业题2) ");
printf("\n0.退出\n1.输入10个数\n2.进行排序\n3.求平均值\n4.输出这些数.\n");
printf("功能选择:");
scanf("%d",&select);
if(select==0)
break;
switch(select)
{
case 1:A(int a[N]);break;
case 2:B(int b[N]);break;
case 3:C(int c[N]);break;
case 4:D(int d[N]);break;
default:printf("输入有误,请在0--5之间选择.\n");
}
}while(1);
}
void A(int val1[N])//输入10个数
{
int i,num[N];
printf("\n请输入%d个数字:",N);
for(i=0;i<N;i++)
scanf("%d",&num[i]);
printf("\n您输入的%d个数为:",N);
for(i=0;i<N;i++)
scanf("%d",&num[i]);
}
void B(int val2[N])//进行排序
{
int i,j;
int grade[N],temp;
for(i=0;i<N;i++)
{
for(j=0;j<N-i-1;j++)
{
if(grade[j]<grade[j+1])
{
/*交换元素*/
temp=grade[j+1];
grade[j+1]=grade[j];
grade[j]=temp;
}
}
}
printf("\n这10个数字排序后为:\n");
for(i=0;i<N;i++)
{
printf("%d",grade[i]);
}
}
void C(int val3[N])//求平均值
{
int i,arr[N];
float ping;
for(i=0;i<N;i++)
scanf("%d",&arr[i]);
for(i=0;i<N;i++)
{
ping=arr[i]/N;
}
printf("\n这10个数的平均值为:%.2f",ping);
}
void D(int val4[N])//输出这10个数
{
int i,num[N];
printf("\n这10个数为:");
for(i=0;i<N;i++)
{
scanf("%d",&num[i]);
}
}
----------------解决方案--------------------------------------------------------
程序好繁琐
#define N 10
void A(int*);
void B(int*);
void C(int*);
//void D(int*);
void main()
{
int select;
int num[N]={0};
do
{
//printf(\" 调用4个函数(作业题2) \");
printf(\"\n0.退出\n1.输入10个数\n2.进行排序\n3.求平均值\n4.输出这些数.\n\");
printf(\"功能选择:\");
scanf(\"%d\",&select);
if(select==0)
break;
switch(select)
{
case 1:A(num);break;
case 2:B(num);break;
case 3:C(num);break;
//case 4:D(num);break;
default:printf(\"输入有误,请在0--5之间选择.\n\");
}
}while(1);
}
void A(int *num)//输入10个数
{
int i;
printf(\"\n请输入%d个数字:\",N);
for(i=0;i<N;i++)
scanf(\"%d\",&num[i]);
printf(\"\n您输入的%d个数为:\",N);
for(i=0;i<N;i++)
printf(\"%d \",num[i]);
printf(\"\n\");
}
void B(int* grade)//进行排序
{
if(grade[0]==0)
A(grade);
int i,j;
int temp;
for(i=0;i<N;i++)
{
for(j=0;j<N-i-1;j++)
{
if(grade[j]<grade[j+1])
{
/*交换元素*/
temp=grade[j+1];
grade[j+1]=grade[j];
grade[j]=temp;
}
}
}
printf(\"\n这10个数字排序后为:\n\");
for(i=0;i<N;i++)
{
printf(\"%d \",grade[i]);
}
putchar('\n');
}
void C(int *arr)//求平均值
{
if(arr[0]==0)
A(arr);
int i;
float ping=0.0;
for(i=0;i<N;i++)
{
ping+=arr[i];
}
printf(\"\n这10个数的平均值为:%.2f\n\",ping/N);
}
/*void D(int *num)//输出这10个数
{
int i;
printf(\"\n这10个数为:\");
for(i=0;i<N;i++)
{
printf(\"%d\",num[i]);
}
}*/
----------------解决方案--------------------------------------------------------
除了指针 还有其他的方法做吗?
谢谢了!
----------------解决方案--------------------------------------------------------
的确好乱呀.我也了...
楼上的貌似可以,LZ你自己瞅瞅哪有区别.
----------------解决方案--------------------------------------------------------
指针接受的数组首地址 然后对其进行操作,指针要来的容易些吧
C++里"引用"也可以达到相同目的的 只要是对相同得内存地址操作就可以
----------------解决方案--------------------------------------------------------
那我自己改的哪个 行不行啊!!
----------------解决方案--------------------------------------------------------