2 qq 29777783 qq_29777783 于 2015.07.16 13:09 提问

c语言的问题求大神的指导!!!

#include"stdio.h"
main()
{
int a[10],i,j,k;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%5d",a[i]);
for(i=0;i<10;i++)
for(j=0;j<10;j++)
if(a[i]<a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
for(i=0;i<10;i++)
printf("%5d",a[i]);
}我明明是想编从大到小为什么这是从小到大 if(a[i]<a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}这条语句求解释

4个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.07.16 13:18
已采纳
 for(j=0;j<10;j++)
 改成
 for(j=i;j<10;j++) 

 k=a[i];//把i位置的值给临时变量k
a[i]=a[j];//把j位置的值给位置i
a[j]=k;//把临时变量K的值给位置j,实现位置i,j的值交换
John_ToString
John_ToString   2015.07.16 17:03

//csdn
#if 1
#include

void main()
{
int a[10],i,j,k;
for(i=0;i<10;i++)
scanf_s("%d",&a[i]);
puts("");
for(i=0;i<10;i++)
for(j=0;j<10;j++)
if(a[i]<a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
for(i=0;i<10;i++)
printf("%2d",a[i]);
}
#endif

首先,你的第一个问题:你代码写的就是从小到大排列,if(a[i]<a[j])交换的。
以上解答仅仅是提高了效率,但是牺牲了空间,当你的数据为升序的时候,空间效率接近O(n2)。

John_ToString
John_ToString   2015.07.16 17:03

//csdn
#if 1
#include

void main()
{
int a[10],i,j,k;
for(i=0;i<10;i++)
scanf_s("%d",&a[i]);
puts("");
for(i=0;i<10;i++)
for(j=0;j<10;j++)
if(a[i]<a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
for(i=0;i<10;i++)
printf("%2d",a[i]);
}
#endif

首先,你的第一个问题:你代码写的就是从小到大排列,if(a[i]<a[j])交换的。
以上解答仅仅是提高了效率,但是牺牲了空间,当你的数据为升序的时候,空间效率接近O(n2)。

sq419412002
sq419412002   2015.07.20 12:19

感觉楼上说的对////、

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
大神指导的简历
写一周内到岗,或者 "目前在职期望新工作" 期望薪资待遇一定要写, 我们公司招人的时候 面议的不约的,面议的意思是不确定自己的需要,对自己定位不明确啥的, 别用163邮箱,用foxmail 或者hotmail之类的英文的
基于MFC ppi计算器
新手自己写的ppi计算器,开发环境:vs2010 win8.1 ,求指导,求大神指导
理解C语言——从小菜到大神的晋级之路(1)——引言:C语言的前世今生
C语言是现在应用最为广泛的编程语言之一,也是现在依然流行的编程语言中历史最悠久的一种之一。在目前业界广泛使用的编程语言中,许多 种语言是以C为基础发展而来。在多类大学的工程类专业尤其是信息类专业的教学计划中,C语言也是极为重要的基础课之一。 而对于一名以编译型语言为主要开发工具的程序员来说,熟练掌握C语言的用法和理论也可以对其他编程语言获得更深的理解。因此,在这一系列教程中我们希望可以深入理解C语
C语言程序设计习题与上机实验(实验答案)
C语言程序设计习题与上机实验(实验答案)
C语言最大子段和问题(动态规划)
C语言最大子段和问题(动态规划)
【C语言训练】求车速
题目链接:http://115.28.203.224/problem.php?cid=1010&pid=20 题目描述 一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两小时后里程表上出现了一个新的对称数。问新的对称数是多少? 输入 输出 提示 根据题意,设所求对称数为i,其初值为95589,对其依次
众数问题的C语言
给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。
C语言最大的乘积问题
最大乘积 Time Limit: 3000ms, Memory Limit: 10000KB , Accepted: 3506, Total Submissions: 6137 Description 输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。如果这个最大的乘积不是正数,输出-1表示无解。1≤n≤18,-10≤Si≤10。 Input 第1行输入n,整数 第2行n
C语言求极值问题~源码
一个用C语言设计的求极值程序,利用费波那楔数列
用动态规划法求解最大子段和问题 C语言实现
用动态规划法求解最大子段和问题 C语言实现