用結構體比較方便易懂,我用結構體幫你做了一下,你可以看一看,可以運行的,我試過了。
通化網站建設公司創新互聯,通化網站設計制作,有大型網站制作公司豐富經驗。已為通化成百上千家提供企業網站建設服務。企業網站搭建\外貿營銷網站建設要多少錢,請找那個售后服務好的通化做網站的公司定做!
#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;
}
文章名稱:c語言函數問題解題 C語言解題
瀏覽路徑:http://m.newbst.com/article42/doojeec.html
成都網站建設公司_創新互聯,為您提供用戶體驗、網站導航、網頁設計公司、手機網站建設、App開發、ChatGPT
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯