scanf("%f %f",&a,&b);scanf是接收用户数据的关键字类似于python中raw_input函数,读取不检查边界的!会出现内存访问越界。而且不需要引入stdio.h(inputout)头文件也可以使用与Printf函数是一样的。
scanf接收格式很严格要求,如果中间空格,在命令行输入时候必须也是空格,是逗号就得输入逗号。这个地方本人就经常犯低级的错误。
普及一下%d(整型1,2,3),%f(浮点型1.0,2.0,3.0),%c(字符串),%f最为有意思,也是比较灵活的double与float类型都用%f接收
sizeof()这个函数用来查看这些类型占几个bit位,1byte=8bit 一个字节8位,**注意并不是int就一定是占4和字节32位,这是不科学的,有的书上是2个字节,有的是4个字节,其实占几个字节根据根据系统来的**,并不是C定义好的。
再来说两个函数pow这个函数在后面全被Double类型取代了,输入输出都是double,求立方的函数,自己写的源码贴出来供大家参考,本人代码风格是谭老师风格,因为学的他的书,所以有时候代码不符合大家感觉
include <stdio.h>
void main()
{
double power(double a,double b);
double x,y;
scanf("%lf,%lf",&x,&y);
printf("%lf\n",power(x,y));
}
double power(double a,double b)
{
double f=1;
int i;
// printf("%f,%f",a,b);
for(i=0;i<b;i++)
{
f*=a;
}
return f;
}
仅供大家参考,那么再来个有意思的二分法与冒泡排序,其实本人挺喜欢数据姐与算法,因为好玩而且实用,毕竟是程序的灵魂如下
本人只会有序的冒泡排序,下面是自己初始化一个数组,下面是排序+循环
#include <stdio.h>
void main()
{
int i,j,l,d;
static int a[5]={5,1,3,6,2};
int b[5];
for(i=0;i<5;i++)
{
for(j=i;j<4;j++)
{
if(a[i] > a[j+1])
{
b[j] = a[j+1];
a[j+1] = a[i];
a[i] = b[j];
}
}
printf("{%d}",a[i]);
}
printf("\nPlease enter find numbers:\n");
scanf("%d",&d);
for(l=0;l<5;l++)
{
if(d == a[l])
{
printf("您查询%d是本数组中的元素,排在数组中第%d位",d,l+1);
}
}
printf("\n");
}
下面再来个二分法查找
#define M 7
#include <stdio.h>
void main()
{
static int a[M]={-12,0,6,16,23,56,80};
int n,start,middle,finlly,found;
start = 0;
finlly = M - 1;
found = 0;
printf("请输入:\n");
scanf("%d",&n);
while(start <= finlly)
{
middle = (start+finlly)/2;
if(n == a[middle])
{
found=1; break;
}
else if(n > a[middle])
start = middle+1;
else
finlly = middle -1;
}
if(found==1)
printf("您查找%d",middle+1);
else
printf("没有查找到%d",n);
}
文本粘贴上来的 格式有点不好看,讲解就么意思不会的可以讨论 毕竟思路是一样的 百度也有大量学习代码
原文地址:http://blog.51cto.com/13352079/2104064