| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2944 人关注过本帖
标题:[讨论]同济05级期末上机第二题
只看楼主 加入收藏
zgwxwn
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-4-24
收藏
得分:0 
# include "stdio.h"
main()
{
int no,i,j,a[100][100],m,n,p,q,l,b[100][100],c[10];char ch[10];
scanf("%d",&no);
for(l=0;l<no;l++)
{scanf("%d x %d",&m,&n);c[l]=m*n;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
getchar();
gets(ch);
if(strcmp(ch,"TL-BR")!=0)
for(i=0;i<m;i++)
for(j=0;j<n/2;j++)
{q=a[i][j];
a[i][j]=a[i][n-j-1];
a[i][n-j-1]=q;}
i=0;j=0;p=0;
k:
b[l][p++]=a[i][j++];
if(j>n-1){j--;i++;}
while(j&&i<m-1)
b[l][p++]=a[i++][j--];
b[l][p++]=a[i++][j];
if(i>m-1){i--;j++;}
while(i&&j<n-1)
b[l][p++]=a[i--][j++];
if(p<m*n)
goto k;}

for(l=0;l<no;l++)
{for(i=0;i<c[l]-1;i++)
printf("%d,",b[l][i]);
printf("%d\n",b[l][c[l]-1]);}
}

coding & enjoying
2006-12-07 10:43
zgwxwn
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-4-24
收藏
得分:0 
上面是配料员

coding & enjoying
2006-12-07 10:44
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 
谢谢,厉害厉害
就差第二题了
2006-12-07 10:56
w362034710
Rank: 1
等 级:新手上路
帖 子:169
专家分:0
注 册:2006-12-2
收藏
得分:0 
# include<stdio.h>
# include<string.h>
void max(int *a,int b);
void min(int *a,int b);
void mean(int *a,int b);
void median(int *a,int b);
void sort(int *a,int b);
char *ch[4]={"[max]","[min]","[mean]","[median]"};
main()
{
int a[4][10],n,b[10];
char op[4][10];
void (*p[4])(int*,int);
int i=0,j=0,k=0,t=0,h=0,m=0,v=1;
p[0]=max;
p[1]=min;
p[2]=mean;
p[3]=median;
printf("input the number: ");/*请输入要测试的集合数目*/
scanf("%d",&n);
while(i<n)
{
printf("input the way of testing array: ");/*请输入你要测试的方式(用中括号括起来)*/
scanf("%s",op[k]);
printf("%d",v++);
printf(" array: ");/*输入第N个集合的元素个数*/
scanf("%d",&m);
for(j=0;j<m;j++)
{
scanf("%d",&a[i][j]);/*输入集合的元素*/
}
b[h]=j;
j=0;
++i;
++k;
h++;
m=0;
}
i=0;
for(i=0;i<n;i++)
{
k=0;
t=0;
while(k<4)
{
if((strcmp(op[i],ch[k++]))==0)
{
t=k-1;
break;
}
}
p[t](a[i],b[i]);
}
getch();
}
void sort(int *a,int b)
{
int i=0,j,temp;
for(i=0;i<b-1;i++)
for(j=i+1;j<b;j++)
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
void max(int *a,int b)
{
int m,i;
sort(a,b);
m=a[b-1];
printf("{");
printf("%d",m);
printf("}");
for(i=0;i<b;i++)
printf("%d ",a[i]);
printf("\n");
}
void min(int *a,int b)
{
int m,i;
sort(a,b);
m=a[0];
printf("{");
printf("%d",m);
printf("}");
for(i=0;i<b;i++)
printf("%d ",a[i]);
printf("\n");
}
void mean(int *a,int b)
{
int i;
int average=0,sum=0;
sort(a,b);
for(i=0;i<b;i++)
sum=sum+a[i];
average=sum/b;
printf("{");
printf("%d",average);
printf("}");
for(i=0;i<b;i++)
printf("%d ",a[i]);
printf("\n");
}
void median(int *a,int b)
{
int m;
int i;
sort(a,b);
m=(a[0]+a[b-1])/2;
printf("{");
printf("%d",m);
printf("}");
for(i=0;i<b;i++)
printf("%d ",a[i]);
printf("\n");
}
出现的界面第一行先输入集合的个数,回车,,
第二行输入要测试的方式,回车
第三行输入第1个集合元素个数,,回车,
第四行输入第1个集合的元素,回车,,
依次这样输入下去,,,可以得出结果,,,
输入比较烦琐,不过基本符合你的要求了,,
2006-12-07 12:19
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 
注意输出:每行输出一个集合。{} 内为计算出该集合的排序指标值,随后为该集合的各个元素的升序排列
这是原题要求的
而且能不能一次性输入??
2006-12-07 12:38
perfect
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:81
专家分:0
注 册:2006-11-19
收藏
得分:0 
以下是引用yelo20053533在2006-12-7 10:22:16的发言:

加一个数组,把输出改成,加入数组中
最后输出数组中的内容
这样算不算改了


片言可以明百意 坐驰可以役万里
2006-12-07 17:14
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 

代码贴出来看看

2006-12-07 21:10
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 
就差第二个了
2006-12-08 20:13
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 
第二个啊
2006-12-10 11:21
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 
谁会第二个?
2006-12-10 17:15
快速回复:[讨论]同济05级期末上机第二题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013327 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved