C語(yǔ)言練習(xí)題:if語(yǔ)句(12題)
下一篇: C語(yǔ)言練習(xí)題:循環(huán)部分
判定三角形類型
/*
__author__ = 'xiaofeizhang'
函數(shù)作用:判定三角形類型
*/
#include <stdio.h>
int main(void){
float a, b, c;
printf("請(qǐng)輸入第一條邊的長(zhǎng)度:%f", &a);
scanf("%f", &a);
printf("第一條邊的長(zhǎng)度為:%f\n", a);
printf("請(qǐng)輸入第二條邊的長(zhǎng)度:%f", &b);
scanf("%f", &b);
printf("請(qǐng)輸入第三條邊的長(zhǎng)度:%f", &c);
scanf("%f", &c);
if (a>=b+c || b>=a+c || c>=a+b){
printf("這三條邊無(wú)法組成一個(gè)三角形\n");
}
else{
if (a==b && a==c && b==c){
printf("這是一個(gè)等邊三角形\n");
}
else if (a==b || a==c || b==c){
printf("這是一個(gè)等腰三角形\n");
}
else if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a){
printf("這是一個(gè)直角三角形");
}
}
return 0;
}
/*
請(qǐng)輸入第一條邊的長(zhǎng)度:0.0000001
第一條邊的長(zhǎng)度為:1.000000
請(qǐng)輸入第二條邊的長(zhǎng)度:0.0000002
請(qǐng)輸入第三條邊的長(zhǎng)度:0.0000003
這三條邊無(wú)法組成一個(gè)三角形
--------------------------------
Process exited after 2.5 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/
根據(jù)x的不同鳍侣,輸出不同的y
/*
__author__ = 'xiaofeizhang'
函數(shù)作用: 根據(jù)x的不同宪潮,輸出不同的y
*/
#include<stdio.h>
int main(void){
int x, y;
printf("請(qǐng)輸入x的值:");
scanf("%d", &x);
if(x>0){
y = 1;
}
else if (x == 0){
y = 0;
}
else{
y = -1;
}
printf("y的值為%d", y);
return 0;
}
/*
請(qǐng)輸入x的值:-1
y的值為-1
請(qǐng)輸入x的值:0
y的值為0
請(qǐng)輸入x的值:1
y的值為1
--------------------------------
Process exited after 0.975 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/
判定某年某月有多少天
/*
__author__ ='xiaofeizhang'
函數(shù)作用:判定某年某月有多少天
*/
#include<stdio.h>
int main(void){
int year, month, days=0;
printf("請(qǐng)輸入年份: ");
scanf("%d", &year);
printf("請(qǐng)輸入月份: ");
scanf("%d", &month);
switch (month){
case 1:;
case 3:;
case 5:;
case 7:;
case 8:;
case 10:;
case 12: days = 31; break;
case 4:;
case 6:;
case 9:;
case 11: days = 30; break;
case 2: if ((year%4==0 && year%100!=0)||year%400==0){
days = 29; }
else{
days = 28;
break;
}
}
if (days != 0){
printf("%d年%d月有%d天", year,month,days);
}
else {
printf("輸入的時(shí)間有問(wèn)題");
}
return 0;
}
/*
請(qǐng)輸入年份: 2019
請(qǐng)輸入月份: 2
2019年2月有28天
--------------------------------
Process exited after 4.642 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/
簡(jiǎn)單計(jì)算器
/*
__author__ ='xiaofeizhang'
函數(shù)作用:簡(jiǎn)單計(jì)算器
*/
#include <stdio.h>
int main(void){
float a, b;
int symbol;
printf("請(qǐng)輸入第一個(gè)操作數(shù):");
scanf("%f", &a);
printf("請(qǐng)輸入第二個(gè)操作數(shù):");
scanf("%f", &b);
printf("請(qǐng)輸入操作符\n");
printf("1: 為乘法 *\n");
printf("2: 為除法 /\n");
printf("3: 為加法 +\n");
printf("4:為減法 -\n");
printf("請(qǐng)輸入:");
scanf("%d", &symbol); //找問(wèn)題匈辱,找了半天,最后才發(fā)現(xiàn)是scanf函數(shù)輸入格式有問(wèn)題望艺,記住這個(gè)取地址符號(hào)&
switch(symbol){
case 1: printf("結(jié)果為:%f", a*b); break;
case 2: printf("%f 除以 %f 的結(jié)果為:%f\n", a, b, a/b); break;
case 3: printf("%f 加上 %f 的結(jié)果為:%f\n", a, b, a+b); break;
case 4: printf("%f 減去 %f 的結(jié)果為:%f\n", a, b, a-b); break;
default: printf("輸入的操作符可能有些問(wèn)題陕贮,請(qǐng)檢查后重新輸入");
}
return 0;
}
/*
請(qǐng)輸入第一個(gè)操作數(shù):2
請(qǐng)輸入第二個(gè)操作數(shù):3
請(qǐng)輸入操作符
1: 為乘法 *
2: 為除法 /
3: 為加法 +
4:為減法 -
請(qǐng)輸入:3
2.000000 加上 3.000000 的結(jié)果為:5.000000
--------------------------------
Process exited after 8.262 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/
判定一個(gè)數(shù)字能否被7整除
/*
__author__ ='xiaofeizhang'
函數(shù)作用: 判定一個(gè)數(shù)字能否被7整除
*/
#include <stdio.h>
int main(void){
int num;
printf("請(qǐng)輸入一個(gè)正數(shù):");
scanf("%d", &num);
// 輸入的字符串中如果含有數(shù)字和字母,輸入函數(shù)會(huì)從第一位開始尋找數(shù)字封救,找到就輸出,找不到就截止對(duì)應(yīng)
// 如果首位為字母捣作,直接輸出0
if (num%7==0 && num%11==0){
printf("輸入的數(shù)值為:%d, 該數(shù)能否被7或者11整除:Yes\n", num);
}
else{
printf("輸入的數(shù)值為:%d, 該數(shù)能否被7或者11整除:No\n", num);
}
return 0;
}
/*
請(qǐng)輸入一個(gè)正數(shù):18
輸入的數(shù)值為:18, 該數(shù)能否被7或者11整除:No
--------------------------------
Process exited after 2.748 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/
判斷一個(gè)數(shù)是否為整數(shù)
/*
__author__ ='xiaofeizhang'
函數(shù)作用: 判斷一個(gè)數(shù)是否為整數(shù)
*/
#include <stdio.h>
bool check(const char *p) {
if(p == NULL)
return 0;
else {
while(*p != '\0') {
if(*p <= '9' && *p++ >= '0')
continue;
else
return 0;
}
}
return 1;
}
int main()
{
bool count;
bool check(const char *p);
count = check("123456.");
if (count){
printf("輸入數(shù)據(jù)的類型為數(shù)值類型");
}
else {
printf("輸入的類型不為數(shù)值類型");
}
return 0;
}
/*
輸入的類型不為數(shù)值類型
--------------------------------
Process exited after 0.0212 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/
求解二元一次方程的解
/*
__author__ ='xiaofeizhang'
函數(shù)作用: 求解二元一次方程的解
*/
#include <stdio.h>
#include <math.h>
int main(void){
float a, b, c, delta;
float x1, x2;
printf("請(qǐng)輸入系數(shù)a: ");
scanf("%f", &a);
printf("請(qǐng)輸入系數(shù)b: ");
scanf("%f", &b);
printf("請(qǐng)輸入系數(shù)c: ");
scanf("%f", &c);
// a = 1; b= 2; c=1;
if (a > 0 || a<0 ){
delta = b*b - 4*a*c;
printf("delta的值為:%lf\n", delta);
if (delta<0){
printf("該方程無(wú)解");
}
else if (delta==0){
x1 = -b / (2 * a);
printf("該方程有兩個(gè)相同的解, %f, %f\n", x1, x1);
}
else {
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("該方程有兩個(gè)不相同的解誉结,解一為:%f, 解二為:%f\n", x1, x2);
}
}
else{
printf("這不是一個(gè)二元一次方程");
}
return 0;
}
/*
請(qǐng)輸入系數(shù)a: 2
請(qǐng)輸入系數(shù)b: 4
請(qǐng)輸入系數(shù)c: 1
delta的值為:8.000000
該方程有兩個(gè)不相同的解券躁,解一為:-0.292893惩坑, 解二為:-1.707107
--------------------------------
Process exited after 4.65 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/
確定一個(gè)正數(shù)的位數(shù)以及反轉(zhuǎn)
/*
__author__ ='xiaofeizhang'
函數(shù)作用: 確定一個(gè)正數(shù)的位數(shù)以及反轉(zhuǎn)
*/
#include <stdio.h>
#include<string.h>
int main(void){
int symbol, symbol_copy, len=0, symbol_reverse=0, tmp;
printf("請(qǐng)輸入一個(gè)位數(shù)不多于4位的正整數(shù):");
// scanf("%c", &symbol); // strlen函數(shù)為 返回字符串的長(zhǎng)度
// len = strlen(symbol);
scanf("%d", &symbol);
symbol_copy = symbol;
while (symbol)
{
tmp = symbol % 10;
symbol_reverse = symbol_reverse * 10 + tmp;
symbol = symbol / 10;
len++;
}
printf("%d 的位數(shù)為 %d\n", symbol_copy, len);
printf("%d這個(gè)序列的反序列為: %d", symbol_copy, symbol_reverse);
}
/*
請(qǐng)輸入一個(gè)位數(shù)不多于4位的正整數(shù):399
399 的位數(shù)為 3
399這個(gè)序列的反序列為: 993
--------------------------------
Process exited after 4.271 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/
使用隨機(jī)函數(shù)
/*
__author__ ='xiaofeizhang'
函數(shù)作用: 使用隨機(jī)函數(shù)
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void){
int num, rnd;
srand(time(NULL)); //srand 返回的是隨機(jī)數(shù)序列, time(NULL)返回的是從1970/1/1/0/0/0到當(dāng)前時(shí)間的秒數(shù)
printf("已經(jīng)過(guò)去多少%d秒了\n", time(NULL));
// rnd = rand(); //該隨機(jī)函數(shù)確實(shí)可以生成一個(gè)隨機(jī)數(shù)也拜,該數(shù)的范圍為0~Rand_max之間以舒,但是時(shí)偽隨機(jī)數(shù)
rnd = rand()%100+1; //該隨機(jī)數(shù)的范圍為1~100之間
printf("預(yù)設(shè)值為:%d\n", rnd);
printf("猜猜看(1-100之間):");
scanf("%d", &num);
if (num>rnd){
printf("猜大了喲");
}
else if (num<rnd){
printf("猜小了喲");
}
else{
printf("恭喜你,猜對(duì)了");
}
return 0;
}
/*
已經(jīng)過(guò)去多少1546506166秒了
預(yù)設(shè)值為:16
猜猜看(1-100之間):2
猜小了喲
--------------------------------
Process exited after 6.061 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/
輸入三個(gè)數(shù)慢哈,并按照從小到大順序排列
/*
__author__ = 'xiaofeizhang'
函數(shù)作用:輸入三個(gè)數(shù)蔓钟,并按照從小到大的順序排列
*/
#include <stdio.h>
bool check(const char *p) {
if(p == NULL)
return 0;
else {
while(*p != '\0') {
if(*p <= '9' && *p++ >= '0')
continue;
else
return 0;
}
}
return 1;
}
int main()
{
int a, b, c;
int new_1, new_2, new_3;
bool count;
bool check(const char *p);
printf("請(qǐng)輸入a:\n");
scanf("%d", &a);
printf("請(qǐng)輸入b:\n");
scanf("%d", &b);
printf("請(qǐng)輸入c:\n");
scanf("%d", &c);
if (a>=b && a>=c){
new_1 = a;
if (b>c){
new_2 = b;
new_3 = c;
}
else {
new_2 = c;
new_3 = b;
}
}
if (b>=a && b>=c){
new_1 = b;
if (a>=c){
new_2 = a;
new_3 = c;
}
else {
new_2 = c;
new_3 = a;
}
}
if (c>=a && c>=b){
new_1 = c;
if (a>=b){
new_2 = a;
new_3 = b;
}
else {
new_2 = b;
new_3 = a;
}
}
printf("這組數(shù)據(jù)從小到大為:%d, %d, %d\n", new_3, new_2, new_1);
count = check("12345.6");
if (count){
printf("輸入數(shù)據(jù)的類型為數(shù)值類型");
}
else {
printf("輸入的類型不為數(shù)值類型");
}
return 0;
}
/*
請(qǐng)輸入a:
123
請(qǐng)輸入b:
321
請(qǐng)輸入c:
456
這組數(shù)據(jù)從小到大為:123, 321, 456
輸入的類型不為數(shù)值類型
--------------------------------
Process exited after 5.888 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/
自動(dòng)售賣機(jī)
/*
__author__ = 'xiaofeizhang'
函數(shù)作用:自動(dòng)售賣機(jī)
*/
#include <stdio.h>
int main(void){
int choice;
printf(" ***** 自動(dòng)售賣機(jī)清單 *****\n");
printf(" ***** 1. 瓜子 *****\n");
printf(" ***** 2. 花生 *****\n");
printf(" ***** 3. 爆米花 *****\n");
printf(" ***** 4. 可樂(lè) *****\n");
printf(" ***** 5. 雪碧 *****\n");
printf(" ***** 6. 果汁 *****\n");
printf(" ***** 7. 咖啡 *****\n");
printf("請(qǐng)輸入你想購(gòu)買的物品序號(hào)(1-7):\n");
scanf("%d", &choice);
switch (choice){
case 1: printf("這是你購(gòu)買的瓜子\n"); break;
case 2: printf("這是你購(gòu)買的花生\n"); break;
case 3: printf("這是你購(gòu)買的爆米花\n"); break;
case 4: printf("這是你購(gòu)買的可樂(lè)\n"); break;
case 5: printf("這是你購(gòu)買的雪碧\n"); break;
case 6: printf("這是你購(gòu)買的果汁\n"); break;
case 7: printf("這是你購(gòu)買的咖啡\n"); break;
default: printf("你下的單有問(wèn)題,請(qǐng)檢查后卵贱,在重新下單\n");
}
return 0;
}
/*
***** 自動(dòng)售賣機(jī)清單 *****
***** 1. 瓜子 *****
***** 2. 花生 *****
***** 3. 爆米花 *****
***** 4. 可樂(lè) *****
***** 5. 雪碧 *****
***** 6. 果汁 *****
***** 7. 咖啡 *****
請(qǐng)輸入你想購(gòu)買的物品序號(hào)(1-7):
6
這是你購(gòu)買的果汁
--------------------------------
Process exited after 3.891 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/
字符轉(zhuǎn)換
/*
__author__ = 'xiaofeizhang'
函數(shù)作用:字符轉(zhuǎn)換
*/
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char symbol, symbol_change;
printf("請(qǐng)輸入要轉(zhuǎn)化的內(nèi)容(大寫字母滥沫,小寫字母,數(shù)字):");
symbol = getchar();
if ('A'<=symbol && symbol<='Z'){
symbol_change = symbol + 32;
printf("本次輸入的字符為:%c\n", symbol);
printf("轉(zhuǎn)化以后的字符為:%c\n", symbol_change);
}
else if ('0'<=symbol && symbol<='9'){
symbol_change = symbol-48;
printf("本次輸入的字符為:%c\n", symbol);
printf("轉(zhuǎn)化以后的字符為:%d\n", symbol_change);
}
else if ('a'<=symbol && symbol<='z'){
symbol_change = symbol - 32;
printf("本次輸入的字符為:%c\n", symbol);
printf("轉(zhuǎn)化以后的字符為:%c\n", symbol_change);
}
else {
printf("輸入的字符可能不在本次轉(zhuǎn)化的考察范圍之內(nèi)\n");
exit(0);
}
return 0;
}
/*
請(qǐng)輸入要轉(zhuǎn)化的內(nèi)容(大寫字母艰赞,小寫字母佣谐,數(shù)字):j
本次輸入的字符為:j
轉(zhuǎn)化以后的字符為:J
--------------------------------
Process exited after 3.495 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/