码迷,mamicode.com
首页 > 编程语言 > 详细

C语言学习_test3

时间:2014-06-03 03:26:18      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:c语言   数组   数据   指针   数据结构   

1.判断一个数是都是回文数

#include <stdio.h>


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 <stdio.h>


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] .

C语言学习_test3,布布扣,bubuko.com

C语言学习_test3

标签:c语言   数组   数据   指针   数据结构   

原文地址:http://blog.csdn.net/thinkingrobot/article/details/27637705

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!