输出应该如下:
甚至是降序中的数组:8
甚至是降序中的数组:6
甚至是降序中的数组:4
即使是降序中的数组:2
甚至数组按降序排列:0
降序中的奇数阵列:9
降序中的奇数阵列:7
降序中的奇数数组:5
降序中的奇数阵列:3
降序中的奇数数组:1
#include<stdio.h>
void main()
{
int i=0,j=0,k=0,odd[5],even[5],temp;
for(i=0;i<10;i++)
{
if(i%2==0)
{
even[j]=i;
j++;
}
else
{
odd[k]=i;
k++;
}
}
for(i=0;i<5;i++)
{
for(j=1;j<6;j++)
{
if(even[i]<even[j])
{
temp=even[j];
even[j]=even[i];
even[i]=temp;
}
}
printf("Even Array in Descending order: %d \n",even[i]);
}
for(i=0;i<5;i++)
{
for(j=1;j<6;j++)
{
if(odd[i]<odd[j])
{
temp=odd[j];
odd[j]=odd[i];
odd[i]=temp;
}
}
printf("Odd Array in Descending order: %d \n",odd[i]);
}
}
答案 0 :(得分:0)
您身边的一个小错误,在排序时,您首先运行for(j=1;j<6;j++)
超出了数组界限,所以您需要做的是对代码进行一些更改。
首先:For循环应该以
运行for(i = 0; i < 4; i++) {
for(j = i + 1; j < 5; j++) {
}
}
第二:在for循环后添加一个printf()
语句,因为外循环只运行4次。
参考完整内容:
#include<stdio.h>
int main()
{
int i=0,j=0,k=0,odd[5],even[5],temp;
for(i=0;i<10;i++)
{
if(i%2==0)
{
even[j]=i;
j++;
}
else
{
odd[k]=i;
k++;
}
}
for(i=0;i<4;i++)
{
for(j= i + 1;j<5;j++)
{
if(even[i]<even[j])
{
temp=even[j];
even[j]=even[i];
even[i]=temp;
}
}
printf("Even Array in Descending order: %d \n",even[i]);
}
printf("Even Array in Descending order: %d \n",even[i]);
for(i=0;i<4;i++)
{
for(j= i + 1;j<5;j++)
{
if(odd[i]<odd[j])
{
temp=odd[j];
odd[j]=odd[i];
odd[i]=temp;
}
}
printf("Odd Array in Descending order: %d \n",odd[i]);
}
printf("Odd Array in Descending order: %d \n",odd[i]);
return 0;
}
访问此link进行演示
乐意帮助!