它最多精确7个数字葡京网站spj3355

#include <stdio.h>

main()
{
    float a,b;
    a=123456.789e5;            /*浮点数如果用一个很大的数加一个很小的数,它最多精确7个数字。*/
    b=a+20;
    printf(“%fn”,b);
    system(“PAUSE”);    
}

还有就是switch语句不能用float的。

/*———————————-数组———————————–*/
数组的问题:不支持动态数组。字符数组。要用字符串数组的话就用指针咯。
1.数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。
2.数组名的书写规则应符合标识符的书写规定。
3.数组名不能与其它变量名相同,例如:
void main()
{
int a;
float a[10];
……
}
是错误的。
4.方括号中常量表达式表示数组元素的个数,如
a[5]表示数组a有5个元素。但是其下标从0开始计算。因此5个元素分别为a[0],a[1],a[2],a[3],a[4]。
5.不能在方括 号中用变量来表示元素的个数,
但是可以是符号常数或常量表达式。例如:
#define FD 5
void main()
{
int a[3+2],b[7+FD];
……
}
是合法的。但是下述说明方式是 错误的。
void main()
{
int n=5;
int a[n];
……
}
6.允许在同一个类型说明中,说明多个数组和多个变量。
例如: int a,b,c,d,k1[10],k2[20];

C语言对数组的初始赋值还有以下几点规定:
1.可以只给部分元素赋初值。当{
}中值的个数少于元素个数时,只给前面部分元素赋值。例如: static int
a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。
2.只能给元素 逐个赋值,不能给数组整体赋值。
例如给十个元素全部赋1值,只能写为: static int
a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为: static int a[10]=1;
3.如不给可初始化的数组赋初 值,则全部元素均为0值。
4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:
static int a[5]={1,2,3,4,5};可写为: static int
a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。
这时可用循环语句配合scanf函数逐个对数组元素赋值。

二维数组初始化也是在类型说明时给各下标变量赋以初值。
二维数组可按行分段赋值,也可按行连续赋值。 例如对数组a[5][3]:
1.按行分段 赋值可写为static int a[5][3]={
{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85} };
2.按行连续赋值可写 为static int a[5][3]={
80,75,92,61,65,71,59,63,70,85,87,90,76,77,85 };
   这两种赋初值的结果是完全相同的。
对于二维数组初始化赋值还有以下说明:
1.可以只对部分元素赋初值,未赋初值的元素自动取0值。
例如: static int a[3][3]={{1},{2},{3}};
是对每一行的第一列元素赋值,未赋值的元素取0值。 赋值后各元素的值为: 1 0
02 0 03 0 0
static int a [3][3]={{0,1},{0,0,2},{3}}; 赋值后的元素值为 0 1 00 0
23 0 0
2.如对全部元素赋初值,则第一维的长度可以不给出。
例如: static int a[3][3]={1,2,3,4,5,6,7,8,9}; 可以写为:static int
a[][3]={1,2,3,4,5,6,7,8,9};
   数组是一种构造类型的数据。
二维数组可以看作是由一维数组的嵌套而构成的。设一维数组的每个元素都又是一个数组,
就组成了二维数组。当然,前提是各元素类型必须相同。根据这样的分析,一个二维数组也可以分解为多个一维数组。
C语言允许这种分解有二维数组a[3][4],可分解为三个一维数组,其数组名分别为a[0],a[1],a[2]。对这三个一维数组不需另作说明即可使
用。这三个一维数组都有4个元素,例如:一维数组a[0]的元素为a[0][0],a[0][1],a[0][2],a[0][3]。必须强调的
是,a[0],a[1],a[2]不能当作下标变量使用,它们是数组名,不是一个单纯的下标变量。

用字符串方式赋值比用字符逐个赋值要多占一个字节,
用于存放字符串结束标志’’。上面的数组c在内存中的实际存放情况为: C
program`’是由C编译系统自动加上的。由于采用了`’标志,所以在用字符串赋初值时一般无须指定数组的长度,
而由系统自行处理。在采用字符串方式后,字符数组的输入输出将变得简单方便。
除了上述用字符串赋初值的办法外,还可用printf函数和scanf函数一次性输出输入一个字符数组中的字符串,
而不必使用循环语句逐个地输入输出每个字符。

字符串常用函数

   C语言提供了丰富的字符串处理函数,
大致可分为字符串的输入、输出、合并、修改、比较、转换、复制、搜索几类。
使用这些函数可大大减轻编程的负担。用于输入输出的字符串函数,
在使用前应包含头文件”stdio.h” ;
使用其它字符串函数则应包含头文件”string.h”。
下面介绍几个最常用的字符串函数。
1.字符串输出函数 puts 格式: puts (字符数组名)
功能:把字符数组中的字符串输出到显示器。 即在屏幕上显示该字符串
#include”stdio.h”
main()
{
static char c[]=”BASICndBASE”;
puts(c);
}

  从程序中可以看出puts 函数中可以使用转义字符,
因此输出结果成为两行。puts函数完全可以由printf函数取代。
当需要按一定格式输出时,通常使用printf函数。

  1. 字符串输入函数gets 格式: gets (字符数组名)
    功能:从标准输入设备键盘上输入一个字符串。
    本函数得到一个函数值,即为该字符数组的首地址。
    #include”stdio.h”
    main()
    {
    char st[15];
    printf(“input string:n”);
    gets(st);
    puts(st);
    }
     
     可以看出当输入的字符串中含有空格时,输出仍为全部字符串。说明gets函数并不以空格作为字符串输入结束的标志,
    而只以回车作为输入结束。这是与scanf函数不同的。
    3.字符串连接函数strcat 格式: strcat (字符数组名1,字符数组名2)
    功能:把字符数组2中的字符串连接到字符数组1
    中字符串的后面,并删去字符串1后的串标志“”。本函数返回值是字符数组1的首地址。
    #include”string.h”
    main()
    {
    static char st1[30]=”My name is “;
    int st2[10];
    printf(“input your name:n”);
    gets(st2);
    strcat(st1,st2);
    puts(st1);
    }

本 程序把初始化赋值的字符数组与动态赋值的字符串连接起来。
要注意的是,字符数组1应定义足够的长度,否则不能全部装入被连接的字符串
4.字符串 拷贝函数strcpy 格式: strcpy (字符数组名1,字符数组名2)
功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“”也一同拷贝。字符数名2,
也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。
#include”string.h”
main()
{
static char st1[15],st2[]=”C Language”;
strcpy(st1,st2);
puts(st1);printf(“n”);
}
本 函数要求字符数组1应有足够的长度,否则不能全部装入所拷贝的字符串。
5.字符串比较函数strcmp 格式: strcmp(字符数组名1,字符数组名2)
功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。
字符串1=字 符串2,返回值=0;
字符串2〉字符串2,返回值〉0;
字符串1〈字符串2,返回值〈0。
本函数也可用于比较两个字符串常量,或 比较数组和字符串常量。
#include”string.h”
main()
{ int k;
static char st1[15],st2[]=”C Language”;
printf(“input a string:n”);
gets(st1);
k=strcmp(st1,st2);
if(k==0) printf(“st1=st2n”);
if(k>0) printf(“st1>st2n”);
if(k<0) printf(“st1<st2n”);
}
  本程序中把输入的字符串和数组st2中的串比较,
比较结果返回到k中,根据k值再输出结果提示串。当输入为dbase时,由ASCII
码可知“dBASE”大于“C Language”故k〉0,输出结果“st1>st2”。
6.测字符串长度函数strlen 格式: strlen(字符数组名)
功能:测字符串的实际长度(不含字符串结束标志‘’) 并作为函数返回值。
#include”string.h”
main()
{ int k;
static char st[]=”C language”;
k=strlen(st);
printf(“The lenth of the string is %dn”,k);
}