当前位置:首页 » 编程语言 » 奇偶排序c语言

奇偶排序c语言

发布时间: 2024-07-29 08:21:19

Ⅰ c璇瑷涓鏁扮粍镄勭瓫阃夈佹帓搴

绗浜屼釜瑕佹眰闇瑕佺敤鍙﹀栫殑鏁扮粍铡诲瓨鍌ㄦ墍瀛樻暟镙囱般
濡傚畾涔変竴涓鏁扮粍A[11]锛岀劧钖庡垽瀹氢笂闱㈣佹眰绛涢夌殑鏁版嵁镄勫囧伓镐э纴灏嗘爣璁板瓨鍦ㄦ柊镄勬暟缁勪腑锛岄渶瑕佹椂鍐嶅垽瀹氭暟缁勫惉镙囱帮纴铹跺悗杈揿嚭镓浠h〃镄勬爣璁扮殑鏁版嵁鍗冲彲銆
浣嗘槸杩欐牱镄勮瘽绌洪棿钥楄垂姣旇缉澶с

c语言 将一数组分奇偶分别有序排序,奇在前,偶在后

现在是北京时间2013 5 31 22:56,看到楼上并未给出程序,而楼主又十分不解,故而作答如下:

数组要分奇偶有序排序,需要借助辅助数组加以实现:

#include<stdio.h>

intmain()
{
inti,a[20],b[20],c[20]={0},j=0,flag,temp;
constintlen=10;//len就是输入的个数了,你可以改变这个数,也可以取消const,在下面加个输入语句,输入len的值

for(i=0;i<len;++i)
{
a[i]=(i/2)+i%2+i%3-i%5+i%6+i%7-i%9+i%11;//我用来做随机值…省的验证的时候麻烦…你换成下面这句就行。
//scanf("%d",&a[i]);
}
for(i=0;i<len;++i)
{
printf("%d",a[i]);
}
printf(" ");


flag=1;
while(flag)
{
temp=len;
flag=0;
b[j]=999999;
for(i=0;i<len;i++)
{
if(a[i]%2==1&&c[i]==0)
{
flag=1;
if(a[i]<b[j])
{
b[j]=a[i];
temp=i;
}
}
}
c[temp]=1;
j++;
}
j--;
flag=1;
while(flag)
{

temp=len;
flag=0;
b[j]=999999;
for(i=0;i<len;i++)
{
if(a[i]%2==0&&c[i]==0)
{
flag=1;

if(a[i]<b[j])
{
b[j]=a[i];
temp=i;
}
}
}
c[temp]=1;
j++;
}

for(i=0;i<len;++i)
a[i]=b[i];
printf("排序后:");

for(i=0;i<len;++i)
{
printf("%d",a[i]);
}
printf(" ");
return0;
}

此程序中使用c数组作为标识对应的a中的数组有未被选中过,避免多次得到同一值。flag用来表示是否能找到符合的数,找不到就跳出循环。这里不涉及排序方法,非要牵强来说就属于直接选择法。

另外附上使用函数按奇偶分割大小排序数组的方法:

先分组与先排序,优劣得所,楼主可试着自行分析,如有不解之处,可以Hi我……鼠标放在我的ID上即可找到Hi。

Ⅲ 鐢–璇瑷杈揿叆鍗佷釜鏁帮纴鍏堟帓搴忥纴铹跺悗鍒嗗埆姹傚嚭锅舵暟鍜屽囨暟镄勬渶澶ф暟

#include<stdio.h>

void main()
{
int a[10],i=0,j=0;
int max1=0,max2=0,tmp=0;
printf("Please input numbers: ");
for(i=0;i<10;i++)
scanf("%d",&a[i]);

for(i=0;i<10;i++)
for(j=i;j<10;j++)
if( a[i]>a[j] )
{
tmp =a[i];
a[i]=a[j];
a[j]=tmp;
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
puts("");
while((max1 == 0)||(max2 == 0))
{
i--;
if((a[i]%2==0)&&(max1==0))
max1=a[i];
if((a[i]%2==1)&&(max2==0))
max2=a[i];
if(i==0)
break;
}
printf("The max oushu is %d\n",max1);
printf("The max jishu is %d\n",max2);
getch();
}

Ⅳ c语言编程分开奇数偶数.

程序如下: #include<stdio.h>
void main()
{
int a[20];
int b[20];
int i,j,k;
printf("输入二十个数:\n");
for(i=0,j=0;i<=19;i++)
{
scanf("%d",&a[i]);
if(0!=a[i]%2)
{
b[j]=a[i];
j++;
}
}
for(i=0,k=j;i<=19;i++)
{
if(0==a[i]%2)
{
b[k]=a[i];
k++;
}
}
for(i=0;i<=19;i++)
printf("%d ",b[i]);
printf("\n");
} 有疑问提出。

Ⅳ 求解几道C语言试题,急!!!!!!!

zhangxiaokun 经理 四级(1131) | 我的提问 | 我的回答 | 个人中心 | 退出 资讯 网页 贴吧 知道 MP3 图片 网络 帮助

网络知道 > 电脑/数码 > 编程快到期问题
• 紧急求教C++程序
• 那为高手能帮我解决这个问题啊~在PB的程序里面输入的汉字没法显示~~
• C++编程问题!!!急,现有现给分!!
• 能帮我找一篇计算机(Java)英汉互译的文章吗~谢谢
• 我在SQL Server 2000中添加了一个实例注册后,在asp网页中访问不了,提示登录出错,是??
更多>>

订阅该问题
您想在自己的网站上展示网络“知道”上的问答吗?来获取免费代码吧!
--------------------------------------------------------------------------------
如要投诉或提出意见建议,请到
网络知道投诉吧反馈。
待解决
求解几道C语言试题,急!!!!!!!
悬赏分:20 - 离问题结束还有 14 天 23 小时
(1)输入年月日,求它是该年的第几天。
(2)编写函数,将一整数数列按奇数在前,偶数在后的顺序重排,并要求奇偶两部分分别有序。
(3)已知n个考生的考号和考试成绩,并已知录取的人数为30%,请编写程序,求出录取分数线及被录取考生的考号。
(4)编写程序,找出二维数组a中每行的最大值,并按一一对应得顺序放入一维数组s中。即第0行中的最大值放入s[0]中,即第1行中的最大值放入s[1]中……然后输出每行的行号和最大值。
(5)输入20个学生的学号、姓名、性别及年龄,分别输出男生中最大年龄的学生信息及女生中最大年龄的信息,并输出男生的人数(要求统计部分用函数实现。

(1) 编写一个C函数实现M行K列矩阵与K行N列矩阵的乘积。设A为M行K列的矩阵,B为K行N列矩阵,则C=A×B的积为M行N列矩阵。
(2) 编写一个排序函数,要求这个函数即能完成从大到小的排序,又能完成从小到大的排序,并编写主函数完成:
① 输入n个数;
② 组织调用排序函数对n个数重排,要求重排后的结果是以最小值所在的位置为界,前段数据按重大到小排,后段数据从小到大排;
③ 输出重排结果。
(3) 输入n个学生的姓名,性别及成绩,并分别找出男学生的前三名及女学生的前三名,要求程序至少由三个函数组成:
1 主函数,输入学生个数n,开辟内存空间,组织调用其他函数,输入统计结果
2 输入函数,输入n个学生的数据
3 统计函数,统计男女前三名
(4) 我们需要同时处理三个文件。文件addr.txt记录了某些人的姓名和地址;文件tel.txt记录了顺序不同的上述人的姓名和电话号码。希望通过对比两个文件,将同一人的姓名,地址和电话号码记录到第三个文件addrtel.txt.

1 求n!,n>=2 <=50
提问者:hxc寒星 - 童生 一级

答复共 3 条
这么多啊。
回答者:wesheng - 经理 五级 7-6 08:09

我晕,这几个题目少说也得做上一天!
回答者:旋风_小子 - 魔法学徒 一级 7-6 08:10

第一题:
#include "stdio.h"
#include "conio.h"
main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month) /*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error");break;
}
sum=sum+day; /*再加上某天的天数*/
if(year%400==0||(year%4==0&&year%100!=0)) /*判断是不是闰年*/
leap=1;
else
leap=0;
if(leap==1&&month>2) /*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It is the %dth day.",sum);
getch();
}
回答者:laibayy - 秀才 三级 7-6 08:16

我也来回答:
回答即可得2分,回答被采纳则获得悬赏分以及奖励20分。 积分规则
回答字数在10000字以内

参考资料:
如果您的回答是从其他地方引用,请表明出处。

匿名回答

&;2006 Bai

热点内容
抗解压模拟器软件下载 发布:2024-11-26 03:27:33 浏览:933
python获取文件列表 发布:2024-11-26 03:18:28 浏览:222
减刑算法 发布:2024-11-26 03:18:27 浏览:182
微信登录忘记密码怎么办啊 发布:2024-11-26 03:15:31 浏览:108
编码与加密 发布:2024-11-26 03:07:45 浏览:873
苹果7照片怎么加密码 发布:2024-11-26 02:44:57 浏览:932
药网源码 发布:2024-11-26 02:39:28 浏览:876
手机忘记密码输什么数字解锁 发布:2024-11-26 02:23:10 浏览:339
phpthisstatic 发布:2024-11-26 02:03:56 浏览:527
忘记的志愿者账号和密码如何找回来 发布:2024-11-26 01:57:46 浏览:207