字元串處理函數
作業:求一進制二次方程的根
//
// main.c
// 一進制二次方程求解
// Created by 丁小未 on 13-7-9.
// Copyright (c) 2013年 dingxiaowei. All rights reserved.
#include <stdio.h>
#include <math.h>
float O(float a,float b,float c)
{
float res = b*b-4*a*c;
if(res<0)
{
return -1;
}
else
return res;
}
int main(int argc, const char * argv[])
float a,b,c;
char flag='y';
printf("*******歡迎使用一進制二次方程求根系統***************\n");
do
do {
printf("\n`請輸入一進制二次方程的a,b,c參數(例如1,4,4):");
scanf("%f,%f,%f",&a,&b,&c);
} while (0==a);
float res;
float x,y;
res=O(a, b, c);
if (res<0)
printf("方程無解!");
if(b*b==4*a*c)
x=(-b)/2*a;
printf("方程的解:X=Y=%.2f",x);
if(res>0)
x=(-b+sqrtf(res))/2*a;
y=(-b-sqrtf(res))/2*a;
printf("方程的解:\nX=%.2f\nY=%.2f",x,y);
printf("\n您想繼續嗎?(y/n)");
flag = getchar(); //要輸入兩次是清除之前擷取到的留在緩存中的'\n'
flag = getchar();
}while ('y'==flag);
return 0;

運算符的先後順序(整理)
優先級
運算符
名稱或含義
使用形式
結合方向
說明
1
[]
數組下标
數組名[常量表達式]
左到右
()
圓括号
(表達式)/函數名(形參表)
.
成員選擇(對象)
對象.成員名
->
成員選擇(指針)
對象指針->成員名
2
-
負号運算符
-表達式
右到左
單目運算符
(類型)
強制類型轉換
(資料類型)表達式
++
自增運算符
++變量名/變量名++
--
自減運算符
--變量名/變量名--
*
取值運算符
*指針變量
&
取位址運算符
&變量名
!
邏輯非運算符
!表達式
~
按位取反運算符
~表達式
sizeof
長度運算符
sizeof(表達式)
3
/
除
表達式/表達式
雙目運算符
乘
表達式*表達式
%
餘數(取模)
整型表達式/整型表達式
4
+
加
表達式+表達式
減
表達式-表達式
5
<<
左移
變量<<表達式
>>
右移
變量>>表達式
6
>
大于
表達式>表達式
>=
大于等于
表達式>=表達式
<
小于
表達式<表達式
<=
小于等于
表達式<=表達式
7
==
等于
表達式==表達式
!=
不等于
表達式!= 表達式
8
按位與
表達式&表達式
9
^
按位異或
表達式^表達式
10
|
按位或
表達式|表達式
11
&&
邏輯與
表達式&&表達式
12
||
邏輯或
表達式||表達式
13
?:
條件運算符
表達式1? 表達式2: 表達式3
三目運算符
14
=
指派運算符
變量=表達式
/=
除後指派
變量/=表達式
*=
乘後指派
變量*=表達式
%=
取模後指派
變量%=表達式
+=
加後指派
變量+=表達式
-=
減後指派
變量-=表達式
<<=
左移後指派
變量<<=表達式
>>=
右移後指派
變量>>=表達式
&=
按位與後指派
變量&=表達式
^=
按位異或後指派
變量^=表達式
|=
按位或後指派
變量|=表達式
15
,
逗号運算符
表達式,表達式,…
從左向右順序運算
說明:
同一優先級的運算符,運算次序由結合方向所決定。
簡單記就是:! > 算術運算符 > 關系運算符 > && > || > 指派運算符
不用第三個參數實作a,b互換
方法一:
a=a+b;
b=a-b;
a=a-b;
方法二:
a=a^b;
b=a^b;