當前位置:首頁 » 編程語言 » 奇偶排序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 01:57:46 瀏覽:205
交換機怎麼復制配置文件 發布:2024-11-26 01:51:47 瀏覽:489
輸編程 發布:2024-11-26 01:51:05 瀏覽:724
推薦類的演算法 發布:2024-11-26 01:50:22 瀏覽:917
怎麼製作ftp軟體 發布:2024-11-26 01:45:41 瀏覽:567
演算法m是誰 發布:2024-11-26 01:40:35 瀏覽:44
h1z1文件夾安裝 發布:2024-11-26 01:40:28 瀏覽:23
電話加密 發布:2024-11-26 01:39:09 瀏覽:28
hotspot源碼 發布:2024-11-26 01:33:05 瀏覽:282
日本電報密碼是多少 發布:2024-11-26 01:33:00 瀏覽:441