㈠ 用c語言編寫「判斷一個數是否為完數」!
1、首先打開C語言的編輯軟體,這里是使用VS2017版,在c語言的文件中寫入頭文件和主函數備用:
㈡ C語言中怎麼判斷輸入的數是整數還是浮點數
c語言中沒有判斷輸入是整數還是浮點數的既有功能,需要自己實現.
實現方法是把輸入作為字元串讀入,然後自行分析該字元串表示的是整數還是浮點數.
㈢ c語言中如何判斷輸入的是字元還是數字
1、可以用sacnf或gets函數直接接收輸入的字元串,然後用循環遍歷字元串中每一個字元,判斷其是字母還是數字。
2、可以用循環調用getch()或getchar()函數來一個一個字元的接收輸入,同時判讀輸入的是字母還是數字。
3、假設字元c,滿足 (c>='a'&& c<='z')|| (c>='A' && c<='Z')就是字母,滿足 (c>=0 && c<=9)就是數字。
(3)用c語言實現判別分析擴展閱讀:
getch():
所在頭文件:conio.h
函數用途:從控制台讀取一個字元,但不顯示在屏幕上
函數原型:int getch(void)
返回值:讀取的字元
例如:
char ch;或int ch;
getch();或ch=getch();
用getch();會等待你按下任意鍵,再繼續執行下面的語句;
用ch=getch();會等待你按下任意鍵之後,把該鍵字元所對應的ASCII碼賦給ch,再執行下面的語句。
㈣ 怎麼判斷1到100之間的素數用C語言程序
//1.程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。
//2.程序源代碼:
#include
"stdio.h"
#include
"math.h"
main()
{
int
m,i,k,h=0,leap=1;
printf("\n");
for(m=1;m<=100;m++)
{
k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{
leap=0;break;
}
if(leap)
{
printf("%-4d",m);
h++;
if(h%10==0)
printf("\n");
}
leap=1;
}
printf("\nThe
total
is
%d",h);
return
0;
}
㈤ c語言:編寫函數判斷x是否同構數
#include
inttgs(intx)
{
intm1,n,a,b;
m1=x;
n=x*m1;
while(m1)
{
a=m1%10;
b=n%10;
if(a!=b)break;
m1=m1/10;
n=n/10;
}
returnm1==0;
}
intmain()
{
intx;
scanf("%d", &x);
if(tgs(x))printf("%d是一個同構數",x);
elseprintf("%d不是一個同構數",x);
return0;
}。
(5)用c語言實現判別分析擴展閱讀
C語言 同構數的演算法
「同構數」是指這樣的整數:它恰好出現在其平方數的右端。
如:376*376=141376。請輸出10000以內的全部「同構數」。
演算法分析:
1.求出1-10000之間每個數的位數(即這個數是幾位數)。設這個數是i.//用for循環實現。
2.再求出每個數的平方值,提取出最右端對應位數的數值出來。//用取模%法實現。
如369是個三個數,它的平方是136161,用取模%法提取出最右三位數字161,即136161%1000=161。
3.最後判斷 i 與右端數 是否相等,相等即為同構數。
㈥ 怎麼判斷1到100之間的素數用C語言程序
這好像是C語言書上一個例子,lz問之前可以搜一下,這題被網上問過好多了。。。下面為
判斷素數的方法:用一個數分別去除以2到sqrt(這個數),如果能被整除, 則表明此數不是素數,反之是素數。
#include〈math.h〉
main()
{ int m,k,i;
for(m=1;m<=100;m=m+2) //m=m+2,因為偶數都不是素數,不用考慮,所以每次m+2.
{ k=sqrt(m) //先求這個數的平方跟
for(i=2;i<=k;i++) //然後用i(從2到k,即m的平方跟)去除m,
if(m%i==0) break; //如果能被整除, 則不是素數,break
if(i>=k+1) pritnf("%d",m); //如果i>k+1,則說明沒有數能整除m.則m是素數
}
}
㈦ C語言里怎麼判斷10個數互不相同簡單的方法,而不是兩兩相比較的方法,請求高手指教,非常感謝啊!!!
hash,用數組的下標表示你輸入的數,數組的值表示該數是否出現過。
初始化數組的值全部為0,表示沒出現。
比如 a[5]=1,表示的意思就是5,出現過
a[5]=0,表示的意思就是5沒有出現過。
a[4]=1,表示的意思就是4出現過。
當然,還可以記錄每個數出現的次數,出現一次,該數組值就加1
a[5]=2,表示5出現2次,同理……
如果只為看是否出現,就用0,1表示,數組類型也可以是bool型,不佔很多空間……
㈧ c語言中判斷一個輸入的數為偶數還是奇數的程序怎麼編寫
1、開啟一個虛擬機,打開終端(ctrl+alt+t),然後用vi新建並進入編輯一個c文件(vi a.c)。
㈨ c語言程序,輸入三角形三邊的長度,判斷是不是三角形,若是,在判斷為何種三角形,並求其面積
#include <stdio.h>
#include <math.h>
// 最小精度
double eps = 1e-5;
// 圓周率常量
double PI = acos(-1);
// 枚舉三角形類型,分別為:
// 非法三角形,銳角三角形,等邊三角形,等腰三角形,直角三角形,等腰直角三角形,鈍角三角形
enum TriangleType{NOT_ANGLE, ACUTE_TRIANGLE, REGULAR_TRIANGLE, ISOCELES_TRIANGLE,
RIGHT_TRIANGLE, ISOCELES_RIGHT_TRIANGLE, OBTUSE_TRIANGLE};
/*
功能:根據變長,判斷三角形的類型
參數:
a,b,c 三角形的三條邊長
返回:
三角形的類型。見: TriangleType。
說明:
應用了餘弦定理:
cosA = (b^2 + c^2 - a^2)/2bc
*/
TriangleType getTypeOFTriangle(double a, double b, double c)
{
// 邊 a, b, c 對應的角的度數(弧度制)
double angle_A, angle_B, angle_C;
// 三邊長度必須必須是正數
if(a<= eps || b<= eps || c <= eps)
return NOT_ANGLE;
// 兩邊之和必須大於第三邊
if((a+b) -c <= eps || (a+c) - b <= eps || (b+c) - a <= eps )
return NOT_ANGLE;
// 兩邊之差必須小於第三邊
if(fabs(a-b) - c>= eps || fabs(a-c) - b >= eps || fabs(b-c) - a >= eps)
return NOT_ANGLE;
angle_A = acos((b*b + c*c - a*a) / (2.0 * b * c));
angle_B = acos((a*a + c*c - b*b) / (2.0 * a * c));
angle_C = acos((a*a + b*b - c*c) / (2.0 * a * b));
if(fabs(angle_A - angle_B) <= eps && fabs(angle_B - angle_C) <= eps)
return REGULAR_TRIANGLE;
else if(fabs(angle_A - angle_B) <= eps)
return angle_C - PI/2.0 <= eps ? ISOCELES_RIGHT_TRIANGLE : ISOCELES_TRIANGLE ;
else if(fabs(angle_A - angle_C) <= eps)
return angle_B - PI/2.0 <= eps ? ISOCELES_RIGHT_TRIANGLE : ISOCELES_TRIANGLE ;
else if(fabs(angle_B - angle_C) <= eps)
return angle_A - PI/2.0 <= eps ? ISOCELES_RIGHT_TRIANGLE : ISOCELES_TRIANGLE ;
else if(fabs(angle_A - PI/2.0) <= eps && fabs(angle_B - PI/2.0) <= eps && fabs(angle_C - PI/2.0) <= eps)
return ACUTE_TRIANGLE;
else if(fabs(angle_A - PI/2.0 ) <= eps || fabs(angle_B - PI/2.0) <= eps || (angle_C - PI/2.0) <= eps)
return RIGHT_TRIANGLE;
else
return OBTUSE_TRIANGLE;
}
/*
功能:根據變長,計算三角形面積
參數:
a,b,c 三角形的三條邊長
返回:
三角形的面積。如果 a,b,c 無法組成三角形,返回 -1。
說明:
函數運用了海倫公式:
S = √(p*(p-a)*(p-b)*(p-a))
其中 p = (a+b+c)/2。
*/
double getAreaOfTriangle(double a, double b, double c)
{
double p = (a + b + c) / 2.0;
if(NOT_ANGLE == getTypeOFTriangle(a, b, c))
return -1;
else
return sqrt(p* (p-a) * (p-b) * (p-c));
}
int main(int argc, char *argv[])
{
// 三角形的三邊長
double a,b,c;
while(scanf("%lf%lf%lf", &a, &b, &c) != EOF)
{
switch(getTypeOFTriangle(a, b, c))
{
case NOT_ANGLE:
printf("%lf %lf %lf 不能組成三角形!\n", a, b, c);
break;
case REGULAR_TRIANGLE:
printf("%lf %lf %lf 能組成等邊三角形,面積為:%lf!\n", a, b, c, getAreaOfTriangle(a, b, c));
break;
case ISOCELES_TRIANGLE:
printf("%lf %lf %lf 能組成等腰三角形,面積為:%lf!\n", a, b, c, getAreaOfTriangle(a, b, c));
break;
case ACUTE_TRIANGLE:
printf("%lf %lf %lf 能組成銳角三角形,面積為:%lf!\n", a, b, c, getAreaOfTriangle(a, b, c));
break;
case RIGHT_TRIANGLE:
printf("%lf %lf %lf 能組成直角三角形,面積為:%lf!\n", a, b, c, getAreaOfTriangle(a, b, c));
break;
case ISOCELES_RIGHT_TRIANGLE:
printf("%lf %lf %lf 能組成等腰直角三角形,面積為:%lf!\n", a, b, c, getAreaOfTriangle(a, b, c));
break;
case OBTUSE_TRIANGLE:
printf("%lf %lf %lf 能組成鈍角三角形,面積為:%lf!\n", a, b, c, getAreaOfTriangle(a, b, c));
break;
default:
;
}
}
return 0;
}
/*
測試數據:
1.0 2 3
3 3 3
4 4 7
4 4.5 5
3 4 5
1.4142135 1.4142135 2
5.5 5 10
*/