如题所述
#include<stdio.h>
int main()
{
int arr[20] = {1,4,2,3,8,7,6,5,9,10,20,19,18,17,16,15,14,13,12,11};
int tmp, i, j;
for(i=0; i<20; i+=2) //i+=2即可。。同样如果认为a[1]是偶数项的话从a[0]开始
for(j=i; j<20; j+=2)
if(arr[i]>arr[j])
tmp =arr[i], arr[i]=arr[j], arr[j]=tmp;
for(i=0; i<20; i++)
printf("%d\t", arr[i]);
return 0;
}
// 可以扩展到任意10个数的做法
// 比如改成spe10={1,2,3,5,8,9,6,10,15}就可以将这这10个位置的数排序
#include<stdio.h>
int main()
{
int arr[20] = {1,4,2,3,8,7,6,5,9,10,20,19,18,17,16,15,14,13,12,11};
int spe10[10] ={0, 2, 4, 6, 8, 10,12, 14, 16, 18}; //改一下就可以扩展了
int tmp, i, j;
for(i=0; i<10; i++)
for(j=i; j<10; j++)
if(arr[spe10[i]]>arr[spe10[j]])
tmp =arr[spe10[i]], arr[spe10[i]]=arr[spe10[j]], arr[spe10[j]]=tmp;
for(i=0; i<20; i++)
printf("%d\t", arr[i]);
return 0;
}
// 顺便套用楼上老兄的数组,谢谢了。
[修改好了,试试吧,测试时候把注解删掉]
main()
{
int a[20],b[20],i=0,j=0,k;
for(i=0;i<20;i++)
{ scanf("%d",&a[i]);
b[i]=0;
}\*把输入的数送入A数组,B数组置0*\
for(i=0;i<20;i++)
if(a[i]%2 ==0)
{ b[j]=a[i];j++ ;}\*A数组偶数送进B数组*\
for(k=0;k<100;k++)
{ for(i=0;i<19;i++)
if(b[i]>b[i+1])
{j=b[i];b[i]=b[i+1];b[i+1]=j;}
}\*B数组排大小*\
j=0;
for(i=0;i<20;i++)
if(a[i]%2 ==0)
{a[i]=b[j];j++;}\*B数组送进A数组偶数位置,主要是送负数*\
j=19;
for(i=19;i>0;i--)
if(a[i]%2==0 && a[i]>=0)
{a[i]=b[j];j--;}\*送正数*\
for(i=0;i<20;i++)
printf("%d ",a[i]);\*输出A数组*\
getch();
}
int main()
{
int arr[20] = {1,4,2,3,8,7,6,5,9,10,20,19,18,17,16,15,14,13,12,11};
int i, j, min, tmp;
for(i=0; i<20; i++)
{
printf("Please input the %dth number:", i+1);
scanf("%d", arr+i);
}
//如果认为arr[1]是偶数位,就如下从i=1开始
//如果认为arr[0]是偶数位,修要修改为从i=0开始
for(i = 1; i < 20; i = i + 2)
{
min = i;
for(j = i + 2; j < 20; j = j + 2)
if(arr[j] < arr[min])
min = j;
if(i != min)
{
tmp = arr[i];
arr[i] = arr[min];
arr[min] = tmp;
}
}
for(i=1; i<20; i++)
printf("The %dth number is %d:\n", i+1, arr[i]);
return 0;
}本回答被提问者采纳
用C语言实现输入20个数偶数项按升序输出,奇数项不变,
int arr[20] = {1,4,2,3,8,7,6,5,9,10,20,19,18,17,16,15,14,13,12,11};int tmp, i, j;for(i=0; i<20; i+=2) \/\/i+=2即可。。同样如果认为a[1]是偶数项的话从a[0]开始 for(j=i; j<20; j+=2)if(arr[i]>arr[j])tmp =arr[i], arr[i]=arr[j], ...
C语言:输入10个整数,求出它们的和,统计其中偶数的个数,输出其中的奇数...
printf("\\n奇数个数=%d\\n偶数个数=%d",one,two);} intmain(){ intnum[N]={0};for(i=0;i<N;i++)scanf("%d",&num[i]);sum(num);check(num);}
编写程序,求1~100之间的奇数和偶数之和,并加以输出。用C语言
} printf("偶数和:%d\\n 奇数和:%d",countou,countji);return 0;}
C语言 求1+3+5+7...+n 程序
```在上面的代码中,我们首先使用`scanf()`函数输入一个正整数n。接着,我们使用`for`循环来计算1+3+5+7...+n这个序列的和,循环从1开始,每次递增2,直到i小于或等于n为止。在循环中,我们使用一个变量sum来保存这个序列的和,然后每次将i加到sum中。最后,我们输出sum的值,即为1+3+5+7...
c语言程序急用编写程序.计算m,n之间所有奇数的和
\/\/case 1 : m是奇数,n是偶数,比如m=3,n=6 \/\/算法描述:\/\/ m到n之间第一个奇数是m \/\/ 最后一个奇数是n-1 \/\/ 奇数的个数是count=(n-m+1)\/2 \/\/ 它们构成一个等比数列 \/\/ 所以和=(首项+末项)*项数\/2 \/\/ 其余的情况类似。\/\/ 算法复杂度:O(1)if( m%...
1到100中的奇数项相加用c语言怎么写
本程序使用C语言计算从1到100中奇数项的和。首先,引入``头文件,它包含了标准输入输出函数,如`printf`。在`main`函数中,定义了两个整型变量`s`和`i`。变量`s`用于存储累加和,变量`i`作为循环计数器。初始化`s`为0,这意味着从开始阶段,累加和为0。接着,使用`for`循环从1开始,到100...
C语言:输入一个数,判断这个数是奇数还是偶数
通过scanf先让用户输入一个数,然后将这个数和2进行取余,余数为0的是偶数,否则是奇数 04 运行程序以后,在控制台我们输入一个数,然后控制台会立即告诉我们输入的数是奇数还是偶数,如下图所示
怎么用c语言实现2—4+6—8…+98—100?
在C语言中,可以使用循环语句和条件语句来实现对序列2—4+6—8…+98—100的求和。可以通过判断当前项的值和前一项的值符号是否相同来实现正负号的交替。以下是一种可能的实现方式:以上代码中,我们定义了变量 i、sum、sign 和 term,其中 i 表示循环计数器,sum 表示求和的结果,sign 表示正负号,...
c语言判断x是奇数还是偶数
c语言中判断x是奇数还是偶数,将x除以2取余数,余数为0是偶数,余数不为0为奇数。具体方法和步骤:1、定义x int x;2、输出 Please input a number printf(Please input a number: );3、获取键盘中输入的字符 scanf(%d,x);4、条件判断并输出 if(x%2==0)printf(this is a oushu!);else...
...按偶奇总排列,若干次循环后为“1 2 3”,c语言的程序
新的数列中,第m行总是以m^2结尾,公差为2,共计m项 因为400<431<441 所以431在第21行,而第21行的开头为400+1=401 所以431排在该行的(431-401)\/2+1=16位 而之前的20行合计有(1+20)*20\/2=210个数 所以k=210+16=226