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

问题描述

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;
}这条语句求解释

解决方案

 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的值交换

解决方案二:

//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)。

解决方案三:

//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)。

解决方案四:

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

时间: 2024-11-03 19:28:58

c语言的问题求大神的指导!!!的相关文章

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

问题描述 c 语言的问题求大神的指导! #include""stdio.h""#include""stdlib.h""void main(){ int guess=0problemch; ch=getchar(); do {scanf(""%d""&guess); problem=(int)(rand()%100)+1; for(;guess!=problem;) {if(gue

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

问题描述 c语言的问题求大神的指导 ![#include"stdio.h" #include"conio.h" main() { clrscr(); gotoxy(10,1); cprintf( "甜密密"); highvideo();/*高亮度显示*/ cprintf( " 你笑得甜密密, "); lowvideo();/*低亮度显示*/ cprintf( " 好象花儿开在春风里, "); normvid

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

问题描述 c 语言的问题求大神的指导 猜四位数的游戏,a表示存在且位置没错,b表示位置错了数字没错 怎么做啊,求指导#include"stdio.h" #include"stdlib.h" void main() { int answer[4],x; int guess[4],i,j,a,b; for(x=0;x<4;x++) answer[x]=(int)(rand()%8+1); while(a!=3) { a=0,b=0; for(i=0;i<4;

c语言-C语言小白问题求大神指教

问题描述 C语言小白问题求大神指教 #include #include unsigned fun(int w) { int a; int i; i=1; a=w; while(a==0) { a=a/10; i++; } w=w%pow(10,i); return w; } unsigned main() { int w; printf("please enter a number:n"); scanf("%d",&w); printf("the

输出-C语言完全数问题,求大神直接给程序

问题描述 C语言完全数问题,求大神直接给程序 输入整数n,判断n是否是完全数,并输出结果 输入N,输出1~N之间的所有完全数 解决方案 #include int main() { int n,N,i,j,sum; printf("输入整数n,判断n是否是完全数:n"); scanf("%d",&n); sum = 0; for (i = 2;i < n;i++) { if (n%i == 0)sum += i; } if (n==sum) printf

rvm-相关向量机(RVM)的C语言算法,求大神帮忙?

问题描述 相关向量机(RVM)的C语言算法,求大神帮忙? 7C 相关向量机(RVM)的C语言算法实现,不知哪位大神能给与指导-- 解决方案 这东西用C写起来可复杂了,一般是matlab写好了,做成dll给C调用 参考下:http://download.csdn.net/detail/daleloogn/7143069

c语言问题-小白c语言求教,求大神解答

问题描述 小白c语言求教,求大神解答 #include int main(void) { int years,days; years=21; days=years*365; printf(" The years is %d. The days are %d. ".years,days); Return 0; } 程序无法运行,提示错误.求大神解答.小弟在这里先谢谢啦. 解决方案 printf(" The years is %d. The days are %d. "

c语言-C语言入门问题求大神指点

问题描述 C语言入门问题求大神指点 #include #define TABINC 8 //tab increment size //replace strings of blanks with tabs and blanksint main(void){ int c nb nt pos; nb = 0; //number of blanksnt = 0; //number of tabsfor (pos = 1; (c = getchar()) != EOF; pos++){ if (c ==

c语言-C语言小白提问```求大神

问题描述 C语言小白提问```求大神 float search(float (*p)[4]){ float *pt = NULL; for (int i = 0; i < 4; i++) { if ((*p + i) < 60) { pt = *p; } } return pt; } int main(int argc, const char * argv[]) { float score[][4] = {{60,70,80,90},{56,86,97,68},{57,58,98,95}};