| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1049 人关注过本帖
标题:[求助]编程作业求教
只看楼主 加入收藏
xzz88
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-12-21
收藏
得分:0 
以下是引用fengwei在2006-12-20 14:24:56的发言:
全-2输出不就完了。

看你的话,我想了想你这个方法还是不错的. 只要少少做个修改. 你这里 -2 是因为数组中最小的值为3,如果全部是5即:{5,5,5,5,5,} 那么明显就是要-4.

所以,我想是不是先找出数组中最小的数,如数值a,则每个位上的数再-(a-1)就可以得到每个位上的数字的顺序排位值.

一点意见,请指教~~~

2006-12-21 16:54
fengzar1984
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-3-30
收藏
得分:0 
白天在线
qq:181264075
email:fengzar1984@163.com
平时只白天在网上.
2006-12-21 19:08
liyueyu
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-12-3
收藏
得分:0 
11楼的 随便出个数组给你看怎么减{5,9,28,2,64}
2006-12-21 19:39
fengzar
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-10-27
收藏
得分:0 
#define NUM 7
int A[NUM+1]={0,5,3,4,7,3,5,6};
int m[NUM+1 ],L[NUM+1];
main()
{
int i,j,k,n,small,num;
num=1;
for(i=1;i if (m[i]==0){
small=a[i]; k=1; L[k]=i;
for(j=i+1;j<=NUM ;j++)
if (m[j]==0){
/*******************found********************/
if (a[j] small=a[i]; /* 此处改为 small=a[j]; */
k=0;
L[++k]=i;} /* 此处改为L[++k]=j; */
Else if (a[j]=small) L[++k]=j;
/*******************found********************/
for(j=1;j<=k;j++) m[L[j]]=num;
num- -; /* 此处改为num++; */
i=0;}
for(j=1;j<=NUM;j++) printf("%d*%d \n ",a[j],m[j]);
}
2007-04-07 20:10
fengzar
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-10-27
收藏
得分:0 

[QUOTE]#include <stdio.h>
void main()
{
int i,j,k,n,m=1,r=1,a[2][100] = {0};
printf("Please enter n:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("a[%d]= ",i);
scanf("%d",&a[0][i]);
}
while(m<=n)
{ for(i=0;i<n;i++)
{ if(a[1][i]!=0)
continue;
k=i;
for(j=i;j<n;j++)
if(a[1][j]==0 && a[0][j]<a[0][k]) k=j;
a[1][k]=r++;
m++;
for(j=0;j<n;j++)
if(a[1][j]==0 && a[0][j]==a[0][k])
{ a[1][j]=a[1][k];
m++;
}
break;
}
}
for(i=0;i<n;i++)
printf("a[%d]=%d, %d\n",i,a[0][i],a[1][i]);
} [/QUOTE]

这是经过运行的,可以看看!


2007-04-07 23:08
yhj19880708
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-3-20
收藏
得分:0 
#include "stdio.h"
main()
{int a[9]={2,6,7,5,3,8,1,89,4},b[9],i,j,k,l;
for(i=0;i<9;i++)
b[i]=1;
for(j=0;j<9;j++)
{for(k=0;k<9;k++)
if(a[k]<a[j])
b[j]++;}
for(l=0;l<9;l++)
printf("%d\t",a[l]);
printf("\n");
for(l=0;l<9;l++)
printf("%d\t",b[l]);
}
试试这个,我试过应该可以的

2007-04-08 01:59
fengzar
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-10-27
收藏
得分:0 

#include <stdio.h>
void main()
{
int n;
int i, j, min;
int m = 1, r = 1; //r为编号,m为登记了的个数
int a[2][100] = {0};
printf("please input n:\n");
scanf("%d",&n);

for(i = 0; i < n; i++)
{
printf("a[%d]=",i);
scanf("%d\n",&a[0][i]);
}

while(m <= n)
{
for(i = 0; i < n; i++)
{
if(a[1][i] != 0) //已经登记过的数跳过(相同的值导致这个语句)
continue;
min = i;
for(j = i; j < n; j++)
if(a[1][j] == 0 && a[0][min] > a[0][j])
min = j;
a[1][min] = r++;
m++;

for(j = 1; j < n; j++) //处理相同记录
if(a[1][j] == 0 && a[0][j] == a[0][min])
{
a[1][j] = a[1][min];
m++;
}
}

}

for(i = 0; i < n; i++)
printf("a[%d] = %d,%d\n",i, a[0][i],a[1][i]);
getch();
}

2007-04-08 21:37
fengzar
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-10-27
收藏
得分:0 

#include <stdio.h>
void main()
{
int n;
int i, j, min;
int m = 1, r = 1; //r为编号,m为登记了的个数
int a[2][100] = {0};
printf("please input n:\n");
scanf("%d",&n);

for(i = 0; i < n; i++)
{
printf("a[%d]=",i);
scanf("%d\n",&a[0][i]);
}

while(m <= n)
{
for(i = 0; i < n; i++)
{
if(a[1][i] != 0) //已经登记过的数跳过(相同的值导致这个语句)
continue;
min = i;
for(j = i; j < n; j++)
if(a[1][j] == 0 && a[0][min] > a[0][j])
min = j;
a[1][min] = r++;
m++;

for(j = 1; j < n; j++) //处理相同记录
if(a[1][j] == 0 && a[0][j] == a[0][min])
{
a[1][j] = a[1][min];
m++;
}
}

}

for(i = 0; i < n; i++)
printf("a[%d] = %d,%d\n",i, a[0][i],a[1][i]);
getch();
}

2007-04-08 21:37
快速回复:[求助]编程作业求教
数据加载中...
 
   



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

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