设为首页 加入收藏

TOP

C语言学习_test3
2015-01-22 21:27:08 来源: 作者: 【 】 浏览:47
Tags:语言学习 _test3

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

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言学习_test2 下一篇C语言--循环结构

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: