用結(jié)構(gòu)體比較方便易懂,我用結(jié)構(gòu)體幫你做了一下,你可以看一看,可以運(yùn)行的,我試過(guò)了。
通化網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),通化網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為通化成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的通化做網(wǎng)站的公司定做!
#includestdio.h
#define N 4
#define M 5
struct student//建立學(xué)生數(shù)據(jù)結(jié)構(gòu)體
{
char name[15];
float score[M];
float ave;
}stu[N];
void average(struct student stu[])//求平均成績(jī)函數(shù)
{
int i,j,k;
float t;
for(i=0;iN;i++)
{
for(j=1;jM;j++)//冒泡排序?qū)?個(gè)評(píng)委評(píng)分從低到高排列,然后取中間的評(píng)分求平均值。
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[])//排序函數(shù)
{
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++)//輸入學(xué)生數(shù)據(jù)
{
printf("請(qǐng)輸入第%d個(gè)學(xué)生的姓名:",i+1);
scanf("%s",stu[i].name);
for(j=0;jM;j++)
{
printf("請(qǐng)輸入該生第%d個(gè)評(píng)委的評(píng)分:",j+1);
scanf("%f",stu[i].score[j]);
}
}
average(stu);//執(zhí)行函數(shù)
sort(stu);
printf("\n按平均成績(jī)逆序輸出為:\n");//逆序打印數(shù)據(jù)
printf("姓名 \t成績(jī)\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個(gè)空格
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);
//輸出結(jié)果:用?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函數(shù)頭文件
int?main(void)
{?
char?a[30],b[30];?????????????//存放字符串?dāng)?shù)組,數(shù)組長(zhǎng)度可以稍微長(zhǎng)點(diǎn)
char?ch;??????????????????????//存放臨時(shí)字符
int?length_a,length_b;????????//統(tǒng)計(jì)字符串長(zhǎng)度
int?i?=?0,j?=?0;
//scanf("%s",a);?
//為什么不用scanf?%s:scanf遇到空格即停止,所以如果輸入abc?123的話只會(huì)存入abc.下面用條件語(yǔ)句實(shí)現(xiàn)
//存入字符串a(chǎn)
printf("請(qǐng)輸入字符串a(chǎn)并按enter鍵結(jié)束:");
while((ch?=?getchar())?!=?'\n')
{
i++;
if(i??30)
{
printf("輸入的字符串太長(zhǎng),請(qǐng)按enter鍵退出重試。\n");
exit(1);
}
else
a[j++]?=?ch;
}
a[j]?=?'\0';???????//添加字符串結(jié)束標(biāo)識(shí)
i?=?0;?????????????//重置計(jì)數(shù)變量
j?=?0;
//存入字符串b
printf("請(qǐng)輸入字符串b并按enter鍵結(jié)束:");
while((ch?=?getchar())?!=?'\n')
{
i++;
if(i??30)
{
printf("輸入的字符串太長(zhǎng),請(qǐng)按enter鍵退出重試。\n");
exit(1);
}
else
b[j++]?=?ch;
}
b[j]?=?'\0';
//得出兩字符串長(zhǎng)度
length_a?=?strlen(a);
length_b?=?strlen(b);
printf("您輸入的a、b字符串依次為:\n");
printf("a:%s\n",a);
printf("b:%s\n",b);
//如果a長(zhǎng)度大于b長(zhǎng)度,則交換
if(length_a??length_b)
{
printf("\na較長(zhǎng),需交換,交換后的結(jié)果為:\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較短,不需交換,結(jié)果仍為:\n");
printf("a:%s\n",a);
printf("b:%s\n\n",b);
return?0;
}