用结构体比较方便易懂,我用结构体帮你做了一下,你可以看一看,可以运行的,我试过了。
通化网站建设公司创新互联,通化网站设计制作,有大型网站制作公司丰富经验。已为通化成百上千家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的通化做网站的公司定做!
#includestdio.h
#define N 4
#define M 5
struct student//建立学生数据结构体
{
char name[15];
float score[M];
float ave;
}stu[N];
void average(struct student stu[])//求平均成绩函数
{
int i,j,k;
float t;
for(i=0;iN;i++)
{
for(j=1;jM;j++)//冒泡排序将5个评委评分从低到高排列,然后取中间的评分求平均值。
for(k=0;kM-j;k++)
if(stu[i].score[j]stu[i].score[j+1])
{
t=stu[i].score[j];
stu[i].score[j]=stu[i].score[j+1];
stu[i].score[j+1]=t;
}
for(j=1;jM-1;j++)//去掉最高和最低分后求平均分
{
stu[i].ave+=stu[i].score[j];
}
stu[i].ave/=M-2;
}
}
void sort(struct student stu[])//排序函数
{
int i,j;
struct student temp;
for(i=1;iN;i++)//冒泡排序法
for(j=0;jN-i;j++)
if(stu[j].avestu[j+1].ave)
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
main()
{
int i,j;
for(i=0;iN;i++)//输入学生数据
{
printf("请输入第%d个学生的姓名:",i+1);
scanf("%s",stu[i].name);
for(j=0;jM;j++)
{
printf("请输入该生第%d个评委的评分:",j+1);
scanf("%f",stu[i].score[j]);
}
}
average(stu);//执行函数
sort(stu);
printf("\n按平均成绩逆序输出为:\n");//逆序打印数据
printf("姓名 \t成绩\n");
for(i=0;iN;i++)
printf("%s \t%.2f\n",stu[i].name,stu[i].ave);
}
希望可以帮到你,呵呵
#include stdio.h
void putchar1(char a,char b); //从小到大输出字母
void putchar2(char a,char b); //从大到小输出字母
void space(int n); //输出n个空格
int main()
{
int n;
int i;
scanf("%d",n);
for(i=0;in;i++)
{space(n-i-1);
putchar1('A','A'+i);
putchar2('A'+i-1,'A');
}
return 0;
}
void putchar1(char a,char b)
{for(char c=a;c=b;c++)
putchar(c);
}
void putchar2(char a,char b)
{for(char c=a;c=b;c--)
putchar(c);
putchar('\n');
}
void space(int n)
{for(;n--;)
putchar(' ');
}
#includeiostream
using namespace std;
void fun(int *a[3], int m , int n)
{int i,j,s=0;
for(i=0;in;i++)
s+=a[i][0];
for(i=0;im;i++)
for(j=0;jn;j++)
a[i][j]+=s;
}
main(int argc,char **argv)
{
int data[3][3]={{1,2,3},{4,5,6},
{7,8,9}},*a[3],i,j;
for(i=0;i3;i++)a[i]=data[i];
fun(a, 3 , 3);
//输出结果:用 cout
cout"\n";
for(i=0;i3;i++)
{
for(j=0;j3;j++)
couta[i][j]" ";
cout"\n";
}
}
#includestdio.h
#includestring.h
#includestdlib.h //exit函数头文件
int main(void)
{
char a[30],b[30]; //存放字符串数组,数组长度可以稍微长点
char ch; //存放临时字符
int length_a,length_b; //统计字符串长度
int i = 0,j = 0;
//scanf("%s",a);
//为什么不用scanf %s:scanf遇到空格即停止,所以如果输入abc 123的话只会存入abc.下面用条件语句实现
//存入字符串a
printf("请输入字符串a并按enter键结束:");
while((ch = getchar()) != '\n')
{
i++;
if(i 30)
{
printf("输入的字符串太长,请按enter键退出重试。\n");
exit(1);
}
else
a[j++] = ch;
}
a[j] = '\0'; //添加字符串结束标识
i = 0; //重置计数变量
j = 0;
//存入字符串b
printf("请输入字符串b并按enter键结束:");
while((ch = getchar()) != '\n')
{
i++;
if(i 30)
{
printf("输入的字符串太长,请按enter键退出重试。\n");
exit(1);
}
else
b[j++] = ch;
}
b[j] = '\0';
//得出两字符串长度
length_a = strlen(a);
length_b = strlen(b);
printf("您输入的a、b字符串依次为:\n");
printf("a:%s\n",a);
printf("b:%s\n",b);
//如果a长度大于b长度,则交换
if(length_a length_b)
{
printf("\na较长,需交换,交换后的结果为:\n");
for(i = 0; i length_a;i++)
{
ch = a[i];
a[i] = b[i];
b[i] = ch;
}
for(i = length_a; i length_b; i++)
{
b[i] = a[i];
}
a[length_b] = '\0';
b[length_a] = '\0';
}
else
printf("\na较短,不需交换,结果仍为:\n");
printf("a:%s\n",a);
printf("b:%s\n\n",b);
return 0;
}