1.判斷一個數是都是回文數
#include
int main(void)
{
int a[100] = {0};
int n;
printf("input n:");
scanf("%d", &n);
int i, k, j;
k = 0;
j = 0;
while(n != 0)
{
a[k++] = n % 10;
n = n / 10;
j++;
}
for(i = 0; i < j; i++)
if(a[i] == a[j-i-1])
printf("ok ");
else
printf("no");
return 0;
}
如果全部輸出ok,則是回文數,如果有一個no,則不是回文數。
這段代碼將數轉換成數組,利用數組的優勢來確定是否是回文數,效率雖然不高,但是這種思想還是挺不錯。
用指針實現排序:
#include
int main(void)
{
int i, data[8], *p1, *p2, temp;
p1 = data;
printf("input data:");
for(i = 0; i < 8 ; i++)
{
scanf("%d", p1);
p1++;
}
for(p1 = data; p1 < data+8-1; p1++)
for(p2 = p1+1; p2 < data+8; p2++)
if(*p1 < *p2)
{
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
for(i = 0, p1 = data; i < 8; i++, p1++)
printf("%6d", *p1);
return 0;
}
指針一直是c語言最頭疼的一部分,也是最好的一部分,指針基本上是c語言所獨有的,這是一段比較簡單的程序,只要理解以下幾點就OK:
1.int a, *p;
*p = a;
p = &a;
int *p是一個int * 數據類型,*p是一個指向int型的指針,p是一個地址,但是它的基礎是*p必須只想一個地址。
2.數組其實也能算是指針,data = data[0],它代表數組的首地址。
所以p = data;
3.假設a是一個常數,則*(p+a) = data[a] .