慈溪网站制作,室内设计专用软件,网站制作流程论文,wordpress视频缩略图自动播放C语言学习#xff01; 1.小明上课需要走n阶台阶#xff0c;他每次可以选择走一阶或者走两阶#xff0c;他一共有多少种走法#xff1f;
输入描述#xff1a;输入包含一个整数n#xff08;1 ≤ n ≤30#xff09;
输出描述#xff1a;输出一个整数#xff0c;即小明可… C语言学习 1.小明上课需要走n阶台阶他每次可以选择走一阶或者走两阶他一共有多少种走法
输入描述输入包含一个整数n1 ≤ n ≤30
输出描述输出一个整数即小明可以走的方法数。
代码示例
#include stdio.hint fig(int n)
{if (n 2){return n;}else{return fig(n - 1) fig(n - 2);}
}int main()
{int n 0;scanf(%d, n);//输入int ret fig(n);//计算printf(%d\n, ret);//输出return 0;
}运行结果
2
210
892.有一个整数序列可能有重复的整数现删除指定的某一个整数输出删除指定数字之后的序列序列中未被删除数字的前后位置没有发生改变。
数据范围序列长度和序列中的值都满足 1 ≤ n ≤ 50
输入描述
第一行输入一个整数1 ≤ n ≤ 50。第二行输入N个整数输入用空格分隔的N个整数。第三行输入想要进行删除的一个整数。
输出描述输出为一行删除指定数字之后的序列。
代码示例
#include stdio.h
int main()
{int n 0;scanf(%d, n);//接收n个数字int arr[50] { 0 };int i 0;for (i 0; i n; i){scanf(%d, arr[i]);}int del 0;scanf(%d, del);//接收删除的数据int j 0;//j作为下标锁定的位置用来存放不删除的数据for (i 0; i n; i){if (arr[i] ! del){arr[j] arr[i];}}for (i 0; i j; i)//输出{printf(%d , arr[i]);}return 0;
}运行结果
6
5 7 6 9 5 8
5
7 6 9 8 3.输出n个成绩换行输出n个成绩中最高分和最低分的差。
输入描述
两行。第一行为n表示n个成绩不会大于10000.第二行为n个成绩整数表示范围0~100以空格隔开。
输出描述一行输出n个成绩中最高分数和最低分数的差。
代码示例
#include stdio.h
int main()
{int n 0;scanf(%d, n);int arr[10000] { 0 };int i 0;for (i 0; i n; i)//输入{scanf(%d, arr[i]);}int max 0;int mix 100;for (i 0; i n; i)//比较出最大值和最小值{if (arr[i] mix){mix arr[i];}if (arr[i] max){max arr[i];}}printf(%d, max - mix);//输出return 0;
}
运行结果
6
66 88 60 87 99 80
39 4.字母大小写转换有一个字符判断它是否为大写字母如果是将它转换成小写字母反之则转换为大写字母。
输入描述多组输入每一行输入一个字母。
输出描述针对每组输入输出单独占一行输出字母的对应形式。
代码示例1
#include stdio.h
int main()
{char n 0;while(scanf(%c, n)1){if (n a n z){printf(%c\n, n - 32);}else if (n A n Z){printf(%c\n, n 32);}}return 0;
}运行结果
a
A
G
g
f
F
H
h代码示例2
#include ctype.h
#include stdio.h
int main()
{char n 0;while(scanf(%c, n)!EOF){if (islower(n))//islower函数判断是否是小写字母是返回1{printf(%c\n, toupper(n));//toupper函数可将小写字母转大写}else if (isupper(n))//isupper函数判断是否是大写字母是返回1{printf(%c\n, tolower(n));//tolower函数可将大写字母转小写}}return 0;
}运行结果
a
A
b
B
G
g
T
t分析scanf函数读取成功时返回读取的数据个数读取失败时返回EOF。 5.判断输入的字符是不是字母。
输入描述多组输入每一行输入一个字符。
输出描述针对每组输入输出但独占一行判断输入字符是否为字母输出内容详见输出样例。
输出样例
a
a is an alphabet.
*
* is not an alphabet.
代码示例1
#include stdio.h
int main()
{char ch 0;while (scanf(%c, ch) 1){if ((ch a ch z) || (ch A ch Z)){printf(%c is an alphabet.\n, ch);}else{printf(%c is not an alphabet.\n, ch);}getchar( );//用于处理输入字符末尾的\n}return 0;
}
运行结果
5
5 is not an alphabet.
D
D is an alphabet.
a
a is an alphabet.
*
* is not an alphabet.
分析 getchar( );用于处理输入字符末尾的\n 代码示例2
#include stdio.h
int main()
{char ch 0;while (scanf( %c, ch) 1)//%c前面加空格是为了跳过下一个字符之前的所有空白字符\n{if (isalpha(ch))// isalpha函数用于判断是否为字母是输出1.{printf(%c is an alphabet.\n, ch);}else{printf(%c is not an alphabet.\n, ch);}}return 0;
}
运行结果
#
# is not an alphabet.
G
G is an alphabet.
c
c is an alphabet.
9
9 is not an alphabet.
分析 scanf中%c前面加空格是为了跳过下一个字符之前的所有空白字符\n isalpha函数用于判断是否为字母是输出1. 6.变种水仙花数把任意的数字从中间拆分成两个数字如1461可拆分为1和46114和61146和1若所有拆分后的乘积之和等于自身则是一个水仙花数。
14611*461 14*61 146*1
求出5位数中的所有水仙花数。
代码示例
#include stdio.h
#include math.hint main()
{int i 0;for (i 10000; i 99999; i){int j 0;int sum 0;for (j 1; j 4; j){int k (int)pow(10, j);sum (i / k) * (i % k);}if (sum i){printf(%d , i);}}return 0;
}
运行结果
14610 16420 23610 34420 65500