『壹』 c語言怎麼判斷數組定義是否正確
定義一個數組,就是看它是哪個類型的數組,比如int a[10],char a[10],float a[10]。
再一個就是初始化的問題,如上int a[10],申請了十個內存空間,你不能越界。對於char a[10],要注意「\0」,這里字元串與字元數組要了解。
就這兩點基本的了,剩下的就是運算了
『貳』 C語言數組變數判斷
大概看了下需求,樓主stA[6]中保存了等待顯示的字元,stB[6]用來保存要顯示的數字,table[]中存儲了對應數字的轉換方式,分為0-9共10個數字.
樓主的問題是如何將stA[6]轉換成Int類型數字,然後將table[]中的數值賦值給stB[],最後進行顯示.
那麼先來講下如何轉換成int,stA[]中定義的成員是int類型,所以這些元素對應的數值其實是ASCII表中的數值,那麼查看ASCII表可以知道,'0'對應的數值是48,比如'1' - 48 就等於1,所以這個時候再到table中去取值,就能得到你需要的東西了,用一個循環就能解決,如下:
for (i = 0; i < 6; ++i){
stB[i] = table[stA[i] - 48];
}
『叄』 c語言判斷輸入的數組是升序還是降序
判斷數組是升序還是降序的前提是數組有序,只需要判斷數組第一個元素和第二個元素的大小即可,若第一個元素大於第二個元素,則是降序;否則是升序
『肆』 c語言用遞歸判斷一個數組是遞增還是遞減
如果中間有相等 3,2,1,1,1,1, 0 ,這不算降序,算無序了!!!
我重新優化了一下,雖改了一點點,但效率提高了很多;
#include "stdio.h"
int order(int dat[ ],int n)
//升序就輸出return 1,降序輸出-1,亂序輸出0
{
int t=dat[1]-dat[0];
int r=t>0?1:(t<0?-1:0);
if (r==0||n<=2) // r==0 時,不管N多少,都不再遞歸下去,這大大優化了
return(r);
int r1=order(dat+1,n-1);
return (r1==r?r:0);
} // 這遞歸演算法僅六行,夠短的了 !!!!
main()
{
int dat[ ]={1,4,2,6};
printf("%d",order(dat,4));
}
我用C++BUILDER6試過了,我的遞歸是正確的
『伍』 C語言如何寫才能判斷兩個數組相等
#include<stdio.h>
intmain()
{
inti=0;
intj=0;
intarr1[]={1,2,3,4,5};
intarr2[]={1,2,7,4,9};
for(i=0;i<sizeof(arr1)/sizeof(arr1[0]);i++)
{
for(j=0;j<sizeof(arr2)/sizeof(arr2[0]);j++)
{
if(arr1[i]==arr2[j])
{
printf("存在相同元素");
break;
}
}
break;
}
return0;
}
(5)c語言數組判斷晉級擴展閱讀
C++比較兩個數組是否相等
constintSIZE=5;
intarrayA[SIZE]={5,10,15,20,25};
intarrayB[SIZE]={5,10,15,20,25};
boolarraysEqual=true;//標志變數
intcount=0;//循環控制變數
//確定元素是否包含相同的數據
while(arraysEqual&&count<SIZE)
{
if(arrayA[count]!=arrayB[count])
arraysEqual=false;
count++;
}
//顯示合適的消息
if(arraysEqual)
cout<<"Thearraysareequal. ";
else
cout<<"Thearraysarenotequal. ";