当前位置: 代码迷 >> C语言 >> 来自北大
  详细解决方案

来自北大

热度:327   发布时间:2007-05-20 01:58:44.0
来自北大

1、 编写程序为六个整型变量A、B、C、D、E、F输入整数,并按从大到小的顺序输出他们的名和值。如:某次A、B、C、D、E、F的输入值为3、2、5、7、4、6,则程序输出D(7)、F(6)、C(5)、E(4)、A(3)、B(2)
#include<stdio.h>
main()
{
int a[5],i,j,k;
char b[5]={'A','B','C','D','E'},m;
printf("please input number for A,B,C,D,E\n ");
for(i=0;i<=4;i++)
{
scanf("%d",&a[i]);
}
for(k=0;k<=3;k++)
{
for(i=0;i<=3-k;i++)
{
if(a[i]<a[i+1])
{
j=a[i];
a[i]=a[i+1];
a[i+1]=j;
m=b[i];
b[i]=b[i+1];
b[i+1]=m;
}
}
}
for(i=0;i<=4;i++)
{
printf("%c",b[i]);
printf("(");
printf("%d",a[i]);
printf(")\n");
}
}

搜索更多相关的解决方案: 北大  

----------------解决方案--------------------------------------------------------
你想干嘛??
----------------解决方案--------------------------------------------------------
大哥 不懂
----------------解决方案--------------------------------------------------------
北大的就牛B啊?
----------------解决方案--------------------------------------------------------
LZ是想发布以下这个程序``让我们看看````吸收经验知识嘛```
----------------解决方案--------------------------------------------------------

刚才看了一下```好像是向下冒泡法(把最小的往最后扔)```

把第一个数``和后面的4个数比```如果第一个数最小`就放到最后..还顺便把字母也换下``

然后在新的顺序下``又把第一个数后后面3个数比``最小的话放在倒数第2``

继续```直到把4个小的依次都弄到后面后````最大就跑出来了````

然后顺序也就出来了``


不知道我说的对不对啊``






----------------解决方案--------------------------------------------------------

不好意思你很聪明。可是你还是理解错了。
第一次是4个
可2次就是3个了
最后就是1个了


----------------解决方案--------------------------------------------------------

不知道lz是什么意思,题目easy,顺便我也写了一个,排序算法是插入排序;

#include<stdio.h>
#include<malloc.h>
#include<assert.h>

#define SIZE 6

void sort_insert(int *array, char *str, int size)
{
int i,j,temp,tempChar;

for(i=1; i<SIZE; i++)
{
j = i-1;
temp = array[i];
tempChar = str[i];
while(j>=0 && temp>array[j])
{
array[j+1] = array[j];
str[j+1] = str[j];
j--;
}
array[j+1] = temp;
str[j+1] = tempChar;
}

return;
}

int main(void)
{
int array[SIZE];

char str[] = "ABCDEF";

printf("input %d nums:\n",SIZE);
for(int i=0; i<SIZE; i++)
scanf("%d",&array[i]);
sort_insert(array,str,SIZE);

printf("after sort:\n");
for(i=0; i<SIZE; i++)
printf("%c(%d) ",str[i],array[i]);
printf("\n");

return -1;
}


----------------解决方案--------------------------------------------------------
LZ想干什么?这么简单的题,拿出来炫耀??
----------------解决方案--------------------------------------------------------
太菜了.我实在是看不出和一般的冒泡有什么区别.
----------------解决方案--------------------------------------------------------
  相关解决方案