1. 用c語言將一個數組中的值按逆序重新存放。例如,原來順序為8,6,5,4,1.要求改為1,4,5,6,8.
#include<stdio.h>
int main()
{
int a[20]={1,0},i,n,j;
printf("請輸入數組元素的個數:");
scanf("%d",&n);
printf("請輸入數組元素: ");
for(i=0;i<n;i++)
scanf("%d",&a<i>);
for(i=0;i<n/2;i++)
a<i>=a[n-1-i];
printf("逆序存放後的數組: ");
for(i=0;i<n;i++)
printf("%d",a<i>);
return 0;
}
(1)c語言數組轉換順序擴展閱讀:
include用法:
#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。
插入頭文件的內容
#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:
1、#include<文件名>
2、#include"文件名"
2. c語言編程:將一個數組中的值按逆序重新存放,例如,原來順序為8,6,5,4,3,要求改為3,4,5
1、首先以一個數組變數和一個數組長度變數。
3. C語言一個二維數組如何轉換成一個新的一維數組
當然可以了。
例如:
#include<stdio.h>voidmain(){inti,j,k=0,a[2][2]={1,2,3,4},b[4];for(i=0;i<2;i++)for(j=0;j<2;j++){b[k]=a[i][j];k++;}for(k=0;k<4;k++)printf("%d",b[k]);}
運行結果:
就是將一個2×2的二維數組的值按順序賦給一個一維數組。
4. C語言:讀入一個整型數組,把它們的次序顛倒過來。 急求!
for
(i=0;i<n;i++);
scanf("%d",&a[i]);
for(i=0;i<n;i++)這一句的後面不該有分號,如果有分號,就循環執行完,卻沒有任何操作。此時,i已經遞增為n,scanf("%d",&a[i]);a[n]已經是數組越界,所以就不會有任何結果。因此,最終答案是去掉for
(i=0;i<n;i++);後面的分號。
5. C語言中,將一個數組的值按逆序重新存放,例如,原來順序為:8,6,5,4,1。要求 改為:1,4,
#include<stdio.h>
int main()
{
int a[5]={8,6,5,4,1};
int temp,i=0,j=0;
for(i=0;i<2;i++)
{
temp=a[i];
a[i]=a[4-i];
a[4-i]=temp;
} //將第一個和最後一個值交換,思路就是這樣
for(i=0;i<5;i++){
printf("%d ",a[i]);
}
return 0;
}
(5)c語言數組轉換順序擴展閱讀:
數組的使用規則
1.可以只給部分元素賦初值。當{ }中值的個數少於元素個數時,只給前面部分元素賦值。例如:static int a[10]={0,1,2,3,4};表示只給a[0]~a[4]5個元素賦值,而後5個元素自動賦0值。
2.只能給元素逐個賦值,不能給數組整體賦值。例如給十個元素全部賦1值,只能寫為:static int a[10]={1,1,1,1,1,1,1,1,1,1},而不能寫為:static int a[10]=1。
3.如不給可初始化的數組賦初值,則全部元素均為0值。
4.如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個數。例如:static int a[5]={1,2,3,4,5};可寫為:static int a[]={1,2,3,4,5};動態賦值可以在程序執行過程中,對數組作動態賦值。這時可用循環語句配合scanf函數逐個對數組元素賦值。
網路-數組
6. c語言求數組元素交換次序
假定數據長n,輸入一個整數m,
1、使數組的後n-m個元素移到前邊,前m-1個元素在數組中從最後位置倒序排列
#include
"stdio.h"
main()
{
int
i,n,m,t,j;
int
d[200];
printf("\n輸入n的值(n<200):");
scanf("%d",&n);
for(i=0;i<n;i++)d[i]=i;
printf("\n輸入m的值(m<200):");
scanf("%d",&m);
printf("\n輸出調整前的數據:\n");
for(i=0;i<n;i++)printf("%d
",d[i];
//調整程序開始
for(i=0;i<m;i++)
{//n-m個數前移了
t=d[0];
for(j=1;j<n;j++)d[j-1]=d[j];
d[n-1]=t;
}
for(i=0;i<m/2;i++)
{//倒序
t=d[n-1-i];
d[n-1-i]=d[m+i];
d[m+i=t;
}
printf("\n輸出調整後的數據:\n");
for(i=0;i<n;i++)printf("%d
",d[i];
}
7. C語言,顛倒數組元素順序
int rev_intary(int v[],int n)
{
int i;
printf("{");
for(i=0;i<n,i++)
{
printf("%d, ",v[n-i-1]);
}
printf("}");
}
上面這段程序只是把它倒過來列印出來,畢竟我看你也沒說要返回一個倒過來的數組返回
8. C語言怎樣用數組把6個整型數按從小到大的順序輸出
C語言實現將數組的六個元素按從小到大的順序輸出,可以採用內部排序演算法對數組的元素進行排序,然後輸出排序後的數組,就可以得到按從小到大的順序輸出。
以快速排序為例的排序代碼:
void quickSort(int a[],int l,int r) {
if(l>=r)
return;
int i = l;
int j = r;
int key = a[l];//選擇第一個數為key
while(i<j) {
while(i<j && a[j]>=key)//從右向左找第一個小於key的值
j--;
if(i<j) {
a[i] = a[j];
i++;
}
while(i<j && a[i]<key)//從左向右找第一個大於key的值
i++;
if(i<j) {
a[j] = a[i];
j--;
}
}
a[i] = key;
quickSort(a, l, i-1);//繼續排左部分,遞歸調用
quickSort(a, i+1, r);//繼續排右部分,遞歸調用
}
int main() {
int a[]= {12,4,132,55,46,232};//隨機數組
int i,n = sizeof(a)/sizeof(a[0]);//獲取數組大小
quickSort(a,0,n-1);//快速排序函數入口
for(i = 0; i < n; i ++)//輸出排序後的結果
printf("%d ",a[i]);
return 0;
}
(8)c語言數組轉換順序擴展閱讀:
排序演算法的評價標准:
1、時間復雜度,即從序列的初始狀態到經過排序演算法的變換移位等操作變到最終排序好的結果狀態的過程所花費的時間度量。
2、空間復雜度,就是從序列的初始狀態經過排序移位變換的過程一直到最終的狀態所花費的空間開銷。
3、使用場景,排序演算法有很多,不同種類的排序演算法適合不同種類的情景,可能有時候需要節省空間對時間要求沒那麼多,反之,有時候則是希望多考慮一些時間,對空間要求沒那麼高,總之一般都會必須從某一方面做出抉擇。
4、穩定性,穩定性是不管考慮時間和空間必須要考慮的問題,往往也是非常重要的影響選擇的因素。
基本的內部排序:冒泡排序、選擇排序、插入排序、希爾排序、歸並排序、快速排序、基數排序、堆排序。
參考資料來源:網路-排序演算法
9. c語言 數組順序後移
把一個整數按大小順序插入已排好序的數組中。
為了把一個數按大小插入已排好序的數組中,應首先確定排序是從大到小還是從小到大進行的。設排序是從大到小進序的,則可把欲插入的數與數組中各數逐個比較,當找到第一個比插入數小的元素i時,該元素之前即為插入位置。然後從數組最後一個元素開始到該元素為止,逐個後移一個單元。最後把插入數賦予元素i即可。如果被插入數比所有的元素值都小則插入最後位置。
main()
{
int i,j,p,q,s,n,a[11]=;
for(i=0;i<10;i++)
{ p=i;q=a[i];
for(j=i+1;j<10;j++)
if(q<a[j])
if(p!=i)
{
s=a[i];
a[i]=a[p];
a[p]=s;
}
printf("%d ",a[i]);
}
printf("\ninput number:\n");
scanf("%d",&n);
for(i=0;i<10;i++)
if(n>a[i])
{for(s=9;s>=i;s--) a[s+1]=a[s];
break;}
a[i]=n;
for(i=0;i<=10;i++)
printf("%d ",a[i]);
printf("\n");
}
本程序首先對數組a中的10個數從大到小排序並輸出排序結果。然後輸入要插入的整數n。再用一個for語句把n和數組元素逐個比較,如果發現有n>a[i]時,則由一個內循環把i以下各元素值順次後移一個單元。後移應從後向前進行(從a[9]開始到a[i]為止)。 後移結束跳出外循環。插入點為i,把n賦予a[i]即可。 如所有的元素均大於被插入數,則並未進行過後移工作。此時i=10,結果是把n賦於a[10]。最後一個循環輸出插入數後的數組各元素值。
程序運行時,輸入數47。從結果中可以看出47已插入到54和 28之間。
將一個數組中的值按逆序重新存放.例如,原來順序為8,6,5,4,1.要求改為1,4,5,6,8.
void converse(int *arr,int len)
{
int mid,i,t;
mid=len/2;
for(i=0;i<=mid;i++)
{
t=arr[i];
arr[i]=arr[len-i-1];
arr[len-i-1]=t;
}
}
10. C語言,將數組中兩個順序表的位置互換
可以讓數組進行轉置來實現,參考如下:
public class TestTransposition {
int col;
int row;
/**轉換方法 將一個數組進行轉置
* 原理很簡單
*
* @param input
* @return
*/
public int[][] trans(int[][] input) {
int[][] output = null;
row = input.length;
if (row $amp;>amp;$nbsp;0) {
col = input[0].length;
}
output = new int[col][row];
for (int i = 0; i $amp; for (int j = 0; j $amp; output[j][i] = input[i][j];
}
}
return output;
}
public static void main(String[] args){
//若是需要得到轉置數組,應該調用上面的轉置方法
// int[][] in={{1,2,3},{3,4,5}};
// int[][] out=new TestTransposition().trans(in);
// for (int i = 0; i $amp; // for (int j = 0; j $amp; // System.out.print(out[i][j]);
// }
// System.out.println("");
// }
//若只是想輸出得到效果 這應該是可以的
int[][] in={{1,2,3},{3,4,5}};
for(int i=0;i<in[0].length;i++){
for(int j=0;j<in.length;j++){
System.out.print(in[j][i]);
}
System.out.println("");
}
}
/*a[2][3]---->a[3][2]
* a[0][0]---->a[0][0]
* a[0][1]---->a[1][0]
* a[0][2]----->a[2][0]
* a[1][0]---->a[0][1]
* a[1][1]---->a[1][1]
* a[1][2]----->a[2][1]
*/
//故此 初步想法應是通過反向循環,即先循環列,在循環行來實現。