C語言 1. switch語句的使用2.輸出菱形3..求出0~999之間的所有”水仙花數“,並輸出
浮點型和零相比?
#define EXP 0.000000……1
在不同作業系統下程式碼結果可能不一樣,所以定義一個精度
switch語句的使用:
int main()
{
int day=0;
scanf("%d",&day);
switch(day) //switch(表示式)表示式一定是整型
{ case1: //case ‘a'代表的是case 97(一定是整型常量表達式) ASCII碼
printf("星期一“);
break; //switch語句中有break將不具有分支效果
case2:
printf("星期二“);
break;
case3:
printf("星期三“);
break;
case4:
printf("星期四“);
break;
default:
break;
}
return 0;
}
例如:輸入2 如若沒有break則結果為 星期二,星期三,星期四。
若有break則結果為 星期二。
題目:
1.輸出菱形
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int i = 0; int line = 0; scanf("%d", &line); for (i = 0; i <line; i++) { int j = 0; for (j = 0; j < line - i-1; j++) { printf(" "); } for (j = 0; j < 2 * i+1; j++) { printf("*"); } printf("\n"); } for (i = 0; i < line - 1; i++) { int j = 0; for (j = 0; j <= i;j++) { printf(" "); } for (j = 0;j<2*(line-1-i)- 1;j++) { printf("*"); } printf("\n"); } system("pause"); return 0; } #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int i = 0; int line = 0; scanf("%d", &line); for (i = 0; i <line; i++) { int j = 0; for (j = 0; j < line - i-1; j++) { printf(" "); } for (j = 0; j < 2 * i+1; j++) { printf("*"); } printf("\n"); } for (i = 0; i < line - 1; i++) { int j = 0; for (j = 0; j <= i;j++) { printf(" "); } for (j = 0;j<2*(line-1-i)- 1;j++) { printf("*"); } printf("\n"); } system("pause"); return 0; }
2.求出0~999之間的所有”水仙花數“,並輸出,“水仙花數”指的是一個N位數,其各位數字的N次方和恰好等於該數本身,
例如:153=1^3+5^3+3^3.
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h> #define M 1000 int main() { int i = 0; for (i = 0; i <M; i++) { //計算幾位數 int bit = 0; int tmp = i; int sum = 0; while (tmp) { tmp = tmp / 10; bit++; } tmp = i;
//計算各位數字的和 while (tmp) { sum = sum + pow(tmp % 10, bit);// 1,要加入標頭檔案 math.h // 2,pow(x,y);//其作用是計算x的y次方。x、y及函式值都是double型 tmp = tmp / 10; } if (i == sum) {
printf("%d\t", i); } } system("pause"); return 0; }