博文

求三角形面积(2009-09-04 16:58:00)

摘要:/*-----村长学习c之路-----*/
/*应用海伦定理求三角形的面积*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int judge(float a,float b,float c);
int main()
{
    float a,b,c,s,area=0;//定义三角形三条边和面积、周长1/2
    char ch;
    int id1=0;
  while(!id1)
 {
    printf("请输入三角形的第一条边边长\n"); //分别对三角形的三边进行验证
    while((scanf("%f",&a))!=1)
   {
               while((ch=getchar())!='\n')
               putchar(ch);
               printf(" 不是数字.\n请输入一个类似 2.5,-1.78E8,或者 3的数字:");
    }
    printf("请输入三角形的第二条边边长\n");
     while((scanf("%f",&b))!=1)
   {
 &nb......

阅读全文(2336) | 评论:0

【转载】深入了解scanf()/getchar()和gets()等函数(2009-09-03 21:51:00)

摘要:----------------------------------------------------
| 问题描述一:(分析scanf()和getchar()读取字符)   |
----------------------------------------------------
    scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的。但是有时候却就是因为使用这些函数除了问题,却找不出其中的原因。下面先看一个很简单的程序:
程序1:
    #include <stdio.h>
    int main()
    {
 char ch1, ch2;
 scanf("%c", &ch1);
 scanf("%c", &ch2);
 printf("%d  %d\n", ch1, ch2);
 return 0;
    }
    或者是:
    #include <stdio.h>
    int main()
    {
 char ch1, ch2;
 ch1 = getchar();
 ch2 = getchar();
 printf("%d  %d\n", ch1, ch2);
 return 0;
    }
    程序的本意很简单,就是从键盘读入两个字符,然后打印出这两个字符的ASCII码值。可是执行程序后会发现除了问题:当从键盘输入一个字符后,就打印出了结果,根本就没有输入第二个字符程序就结束了。例如用户输入字符'a', 打印结果是97,10......

阅读全文(2313) | 评论:1

标准输出学习(2009-09-03 16:29:00)

摘要:/*--村长学习c之路 工具dev c++ 4.9.9.2---*/ #include <stdio.h>int main(){    /* 测试字符串输出格式*/      printf("%-8s\n","china");     printf("%s\n","christan");     printf("-------------------------------------------\n");     /*测试制表符格式*/      printf("*\t*\t*\t*\n");     printf("*\t*\t*\t*\n");printf("*\t*\t*\t*\n");printf("*\t*\t*\t*\n");printf("*\t*\t*\t*\n");     printf("*\t*\t*\t*\n");printf("*\t*\t*\t*\n");printf("*\t*\t*\t*\n");printf("*\t*\t*\t*\n");     printf("-------------------------------------------\n");     /*测试单精度和双精度数据类型取得的有效数字位数之间的差别*/     double x1,y1;     float x2,y2;     x1=111111.111;y1=222222.222;x2=111111.111;y2=222222.222;      printf("%f\n",x1+y1);     printf("%8.8f\n",x2+y2);     printf("%f\n",(x1+y1)-(x2+y2));/*两者之差为0......

阅读全文(1518) | 评论:0