⑴ c語言中比較一個數組中元素的大小知道
假設整型數組 a,10個元素,
比較代碼:
int max = a[0]; // max保存最大元素
int _max = 0; //保存最大元素下標,如果需要記錄那個元素最大
for(int i=1; i<10; i++) // 10為數組元素數量
{
if( a[i]>max ) //比較元素大小,記錄最大元素及其下標
{
max = a[i];
_max = i;
}
}
最後 a[_max] 就是最大元素,值同時也保存在變數max里。
⑵ c語言初學 數組元素的大小比較問題
char s[10]; 只能存儲字元
gets(s);得到的是一個字元串,怎麼能得到合理的整數呢
#include<stdio.h>
main()
{
intmax,min,i;
ints[10];
printf("請輸入十個整數:");
for(i=0;i<10;i++)
scanf("%d",&s[i]);
max=min=s[0];
for(i=1;i<10;i++)//取後9個數進行比較
{
if(s[i]<min)
min=s[i];
if(s[i]>max)
max=s[i];
}
printf("最大數是:%d 最小數是:%d ",max,min);
return0;
}
⑶ c語言字元數組如何比較
1、C語言中字元是使用char來定義的,使用關系運算符(>,<,=)即可對字元進行比較。在編譯器中定義a、b兩個字元型變數,並為其賦值,按照如圖所示編寫代碼。
⑷ 怎樣在c語言中比較一個數組中元素的大小
main() {int a[10],b[10],i,j=0,k=0,e=0; for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(i=0;i<10;i++) scanf("%d",&b[i]); printf("\n"); for(i=0;i<10;i++) {if(a[i]>b[i]) j++; else if(a[i]b %d times\na
#include
int main(){
int numbers[10] = { 10,2,3,4,5,6,9,8,7,1 };
int a,b, text, hello;
for(a=0; a<10-1; a=a+1) { //在這里進行比較的開始的代碼
hello = 1; //假如剩下的元素已經被排序好了,然後接著進行下面的比較
for(b=0; b<10-1-i; b=b+1){
if(numbers[b] > numbers[b+1]){
text= numbers[b];
numbers[b] = numbers[b+1];
numbers[b+1] = text;
hello= 0;
}
}
if(hello) break;
}
for(a=0; a<10; a=a+1){
printf("%d ", numbers[a]);
}
printf("\n");
return 0;
}
(4)c語言怎麼比較元素大擴展閱讀:
C語言中數組元素大小的相關排序規則:
一、首先需要對數組中的元素進行排列,默認是以字元串的規則進行從小到大排序;可接收一個參數:自定義的規則相關排序。參數的具體要求如下:
1、參數首先必須是一個函數;
2、函數必須有一個明確的返回值;
3、返回值必須是number類型,但不可以是NaN。
二、排序中的具體規則:
1、首先每次從數組中挑選出兩個元素傳入函數中,進行比較,直到所有進行排列的元素都被挑選完畢以後就不要再進行挑選;
2、如果返回值是一個正數,就交換這彼此的位置,實現大小的正確排列;
3、如果返回值是一個負數或0,此時說明大小位置的順序是正確的,此時就不需要交換彼此的位置。
4、默認同一字元的全形字元看做半形字元。不區分同一個字元(如日文的片假字)的半形與全形狀態。相同元素,維持原序,默認區分字母大小寫,同一個字元小寫在前,大寫在後。
注意:對數組的元素進行排序需要不斷比較兩個數字的大小,10個元素排序一共需要比較9次,直到所有的元素被都完完全全地被比較一次。
⑸ C語言比較數組元素,按從大到小排序,問兩個簡單的問題謝謝
你好,這是經典的選擇排序演算法。
第一次i賦值給p,是為了存儲當時i的值。
第二次給p賦值,是有條件的。即需要:a[i]<a[j]
所以,p和i不一定相等的。
另:選擇排序思想:
n個記錄的文件的直接選擇排序可經過n-1趟直接選擇排序得到有序結果:
①初始狀態:無序區為R[1..n],有序區為空。
②第1趟排序
在無序區R[1..n]中選出關鍵字最小的記錄R[k],將它與無序區的第1個記錄R[1]交換,使R[1..1]和R[2..n]分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區。
……
③第i趟排序
第i趟排序開始時,當前有序區和無序區分別為R[1..i-1]和R(i..n)。該趟排序從當前無序區中選出關鍵字最小的記錄 R[k],將它與無序區的第1個記錄R交換,使R[1..i]和R分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區。
這樣,n個記錄的文件的直接選擇排序可經過n-1趟直接選擇排序得到有序結果。
⑹ 求C語言將數組元素大小排序!!
C語言將數組元素大小排序方法:
以下使用的是冒泡排序法實線數組從小到大排序。
思想:每次相鄰兩個數比較,若升序,則將大的數放到後面,一次循環過後,就會將最大的數放在最後。
10、2、3、4、5、6、9、8、7、1是輸入的待排序的數列,經過第一次排序,將最大的,10放在最後,第二次排序,將剩下的2、3、4、5、6、9、8、7、1進行冒泡,將當前最大的9放在倒數第二的位置,以此類推。
以下是具體代碼:
#include <stdio.h>
int main(){
int nums[10] = {10, 2, 3, 4, 5, 6, 9, 8, 7, 1};
int i, j, temp, isSorted;
//優化演算法:最多進行 n-1 輪比較
for(i=0; i<10-1; i++){
isSorted = 1; //假設剩下的元素已經排序好了
for(j=0; j<10-1-i; j++){
if(nums[j] > nums[j+1]){
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
isSorted = 0; //一旦需要交換數組元素,就說明剩下的元素沒有排序好
}
}
if(isSorted) break; //如果沒有發生交換,說明剩下的元素已經排序好了
}
for(i=0; i<10; i++){
printf("%d ", nums[i]);
}
printf(" ");
return 0;
}
(6)c語言怎麼比較元素大擴展閱讀:
其他將數組從小到大排序的演算法
以下使用的是選擇排序法實現數組從小到大排序。
思想:從第一個數開始,每次和後面剩餘的數進行比較,若升序,則如果後邊的數比當前數字小,進行交換,和後面的所有的數比較、交換後,就會將當前的最小值放在當前的位置
輸入的序列為10、2、3、4、5、6、9、8、7、1進行一次排序後將最小的數放在了第一位(a[0]與它後面的所有數進行比較,若a[0]比後面的數大,進行交換),以此類推。
以下是具體代碼:
#include <stdio.h>
int main(void){
int a[1001];
int n,i,j,t;
scanf("%d",&n);//n為要排序的數的個數
//輸入需要排序的數
for(i=0;i<n;++i)
scanf("%d",a+i);
//接下來進行排序
for(i=0;i<n-1;++i)//因為每次需要和a[i]後面的數進行比較,所以到a[n-2](倒數第2個元素)就行
{
for(j=i+1;j<n;++j)//j從i後一個開始,a[i]與a[j]進行比較
{
if(a[i]>a[j])//a[i]為當前值,若是比後面的a[j]大,進行交換
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}//每排序一次,就會將a[i](包括a[i])之後的最小值放在a[i]的位置
for(j=0;j<n;++j)
printf("%-5d",a[j]);
printf(" ");
}
return 0;
}
⑺ c語言中如何從一大堆數據中篩選最大的
1.把這「一大堆」數放進一個數組。
2.把數組的第一個元素看作最大數賦給變數max。
3.從數組的第二個元素開始與max比較,若元素值比max大則把這個元素值賦給max。
4.遍歷後max則為最大的。
⑻ c語言中比較一個數組中元素的大小
如果數組里全是3
那我輸入要刪除的3之後
樓主想要一個什麼結果呢
是9個3
還是一個元素也不輸出?
下面的程序可能能實現樓主的意思
#include
void
main()
{
int
a[10]={1,3,7,61,86,12,75643,8989,1,3},n,i;
printf("input
the
number
to
delete:");
scanf("%d",&n);
for(i=0;i<10;i++)
if(a[i]!=n)
printf("%d
",a[i]);
}
⑼ c語言編程題 比較數組元素大小
//剛寫好,冒泡排序,採納吧,LZ新年快樂
#include <stdio.h>
const int N=50;
void Bsort(int array[N][N],int n,int m)
{
int k,i,j,temp;
for (k=0;k<n;k++)
{
for(i=0;i<m-1;i++)
for(j=0;j<m-i-1;j++)
if(array[k][j]>array[k][j+1])
{
temp=array[k][j];
array[k][j]=array[k][j+1];
array[k][j+1]=temp;
}
}
}
void main()
{
int n,m,array[N][N],i,j;
scanf("%d,%d",&n,&m);
for (i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&array[i][j]);
Bsort(array,n,m);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%d ",array[i][j]);
printf("\n");
}
}