定义一个有10个元素的整形数组并输入任意数据,将原数组内容输出,再对数组数据按从小到大排序
定义一个有10个元素的整形数组并输入任意数据,将原数组内容输出,再对数组数据按从小到大排序,输出排序后的结果以及各数据在原退数组中的下标,(提示用两个字段(下标和数值)的...
定义一个有10个元素的整形数组并输入任意数据,将原数组内容输出,再对数组数据按从小到大排序,输出排序后的结果以及各数据在原退数组中的下标,(提示用两个字段(下标和数值)的结构数组,排序时结构元素整体交换)
刚开始学C语言,语句也学得不多。拜托各位说些简单一点的... 展开
刚开始学C语言,语句也学得不多。拜托各位说些简单一点的... 展开
展开全部
#include <stdio.h>
#define NUM 10
struct data{int value;int seat;} D[NUM],Dtmp;
void main()
{
int i,j,k;
printf("输入%d个整数:",NUM);
for(i=0; i<NUM; D[i].seat=i++)scanf("%d",&D[i].value);
printf("原始数据顺序:\n")
for(i=0;i<NUM;i++) printf("%d ",D[i].value);
for(i=0; i<NUM; i++) // i<NUM ==>写成 i<NUM-1 也未提高多少效率,因最后一次内循环是0步,于是为编程上省事,就直接写作NUM了
for(j=0;j<NUM-1-i;j++) // 简单直接就冒泡了 对于非常少的数量级来说,简单算法与高级算法效率区别不大了
if(D[j].value>D[j+1].value)
{
Dtmp.value = D[j].value; D[j].value=D[j+1].value; D[j+1].value=Dtmp.value;
Dtmp.seat = D[j].seat; D[j].seat=D[j+1].seat; D[j+1].seat=Dtmp.seat;
}
printf("排序后的数据:\n");
for(i=0;i<NUM;i++) printf("%d[%d] ",D[i].value,D[i].seat);
}
#define NUM 10
struct data{int value;int seat;} D[NUM],Dtmp;
void main()
{
int i,j,k;
printf("输入%d个整数:",NUM);
for(i=0; i<NUM; D[i].seat=i++)scanf("%d",&D[i].value);
printf("原始数据顺序:\n")
for(i=0;i<NUM;i++) printf("%d ",D[i].value);
for(i=0; i<NUM; i++) // i<NUM ==>写成 i<NUM-1 也未提高多少效率,因最后一次内循环是0步,于是为编程上省事,就直接写作NUM了
for(j=0;j<NUM-1-i;j++) // 简单直接就冒泡了 对于非常少的数量级来说,简单算法与高级算法效率区别不大了
if(D[j].value>D[j+1].value)
{
Dtmp.value = D[j].value; D[j].value=D[j+1].value; D[j+1].value=Dtmp.value;
Dtmp.seat = D[j].seat; D[j].seat=D[j+1].seat; D[j+1].seat=Dtmp.seat;
}
printf("排序后的数据:\n");
for(i=0;i<NUM;i++) printf("%d[%d] ",D[i].value,D[i].seat);
}
追问
我刚开始学C语言,语句也学得不多,所以看的不是很明白。
追答
是不是说我加了注释反而让你更不懂,是的,我不应该加那么多字,一字不加就会很白很白
我输出的是排序后的数字顺序及数字在原始数组中的下标,楼下有一个输出在新数组中坐标的版本,你慢慢看吧,别人理解再多也不及你自己去理解它们
展开全部
#include<iostream>
using namespace std;
int main()
{
int A[10];
int a,b,i,j,k,temp;
cout<<"Input the array:"<<endl;
for(i=0;i<10;i++)
cin>>A[i];
cout<<"输入的数组为:";
for(a=0;a<10;a++) cout<<"A["<<a<<"]="<<A[a]<<' ';
cout<<endl;
for(j=9;j>=0;j--){
for(k=0;k<j;j++){
if(A[k]>A[k+1]){
temp=A[k];
A[k]=A[k+1];
A[k+1]=temp;
}
}
}
cout<<"排序后的数组为:";
for(b=0;b<10;b++)cout<<"A["<<b<<"]="<<A[b]<<' ';
return 0;
}
using namespace std;
int main()
{
int A[10];
int a,b,i,j,k,temp;
cout<<"Input the array:"<<endl;
for(i=0;i<10;i++)
cin>>A[i];
cout<<"输入的数组为:";
for(a=0;a<10;a++) cout<<"A["<<a<<"]="<<A[a]<<' ';
cout<<endl;
for(j=9;j>=0;j--){
for(k=0;k<j;j++){
if(A[k]>A[k+1]){
temp=A[k];
A[k]=A[k+1];
A[k+1]=temp;
}
}
}
cout<<"排序后的数组为:";
for(b=0;b<10;b++)cout<<"A["<<b<<"]="<<A[b]<<' ';
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询