C语言的简单应用(三)
2017-07-15 18:28
393 查看
第三天
1、题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
分析:这种方式很好,get到了一个逆序的新用法
2、题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
3、题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
4、题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
改良后可判断任意回文序列,当然限int内
5、题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。
6、题目:对10个数进行排序(选择排序法)
7、矩阵的相关运算(对角线之和,两个矩阵相乘)
8、输入从大到小排好序的数组,然后插入一个数字(插入排序)
9、题目:取一个整数a从右端开始的4~7位。
10、一个恶搞小程序(‾◡◝)(关于调用windows系统的库文件)
解除命令:百度知道
总结
本次代码量较之前两日有些改变,但很有意思的是居然出现了好几个排序,冒泡版,选择版、还有插入版,很不错,适合练手,明天继续。
1、题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
分析:这种方式很好,get到了一个逆序的新用法
#include<stdio.h> #define MAX 5 void print(int n) { int a; if(n<=1) { a=getchar(); putchar(a); } else { a=getchar(); print(n-1); putchar(a); } } int main() { int n=MAX; print(n); putchar('\n'); return 0; }
2、题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
#include<stdio.h> int age(int n) { int c; if(n==1) c=10; else c=age(n-1)+2; return c; } int main() { printf("the fifth:%d",age(5)); return 0; }
3、题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
#include<stdio.h> #define max 100 int main() { int a,b[max],i=0; printf("input the number:");scanf("%d",&a); while(a) { b[i]=a%10; i++; a/=10; } a=i; printf("It is %d位,It is:",i); for(i=0;i<a;i++) printf("%d",b[i]); return 0; }
4、题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
改良后可判断任意回文序列,当然限int内
#include<stdio.h> #define max 100 int judge(int b[],int n) { int i,a; for(i=0;i<n;i++) { a=n-1-i; if(b[i]==b[a]) return 1; else return 0; } } int main() { int a,b[max],i=0; printf("input the number:");scanf("%d",&a); while(a) { b[i]=a%10; i++; a/=10; } a=i; printf("It is %d位,It is:",i); for(i=0;i<a;i++) printf("%d",b[i]); if(judge(b,i)) printf("\nIt is palindrome"); else printf("\nIt isn't"); return 0; }
5、题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。
#include<stdio.h> int main() { char letter; printf("input the first letter:"); while((letter=getchar())!='Y') { switch(letter) { case 's':printf("input second letter\n"); if((letter=getchar())=='a') printf("saturday\n"); else if((letter=getchar())='u') printf("sunday\n"); else printf("error data\n"); break; case 'f':printf("friday\n");break; case 'm':printf("monday\n");break; case 't':printf("input second letter\n"); if((letter=getchar())=='u') printf("tuesday\n"); else if((letter=getchar())=='h') printf("thursday\n"); else printf("error data\n");break; case 'w':printf("wednesday\n");break; default :printf("error data;\n"); } } return 0; }
6、题目:对10个数进行排序(选择排序法)
#include<stdio.h> #define N 10 int main() { int i,j,min,a ; printf("input %d number:\n",N); for(i=0;i<N;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("the sort number:\n"); for(i=0;i<N;i++) { min=i; for(j=i+1;j<N;j++) if(a[min]>a[j]) min=j; int temp=a[i]; a[i]=a[min]; a[min]=temp; } for(i=0;i<N;i++) printf("%d ",a[i]); return 0; }
7、矩阵的相关运算(对角线之和,两个矩阵相乘)
#include<stdio.h> #define N 3 int main() { int i,j,k,sum=0,a ,b ,c ={0}; printf("input a[%d][%d] matrix:\n",N,N); for(i=0;i<N;i++) for(j=0;j<N;j++) scanf("%d",&a[i][j]); printf("input b[%d][%d] matrix:\n",N,N); for(i=0;i<N;i++) for(j=0;j<N;j++) scanf("%d",&b[i][j]); for(i=0;i<N;i++) { printf("a[%d][%d] ",i,i); sum+=a[i][i]; } printf("=%d\n",sum); for(i=0;i<N;i++) for(j=0;j<N;j++) for(k=0;k<N;k++) c[i][j]+=a[i][k]*b[k][j]; for(i=0;i<N;i++) for(j=0;j<N;j++) { printf("%d ",c[i][j]); if(j/(N-1)==1) putchar('\n'); } return 0; }
8、输入从大到小排好序的数组,然后插入一个数字(插入排序)
#include<stdio.h> #define N 20 int main() { int i,j,temp,number,a ; puts("input some numbers:"); for(i=0;i<N-1;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("input the insert number:"); scanf("%d",&number); if(number>a[N-2]) a[N-1]=number; else { for(i=0;i<N-1;i++) if(a[i]>number) { temp=a[i]; break; } a[i]=number; for(j=N-1;j>=i+2;j--) { a[j]=a[j-1]; } a[i+1]=temp; } puts("the sort number:"); for(i=0;i<N;i++) printf("a[%d]=%d\n",i,a[i]); return 0; }
9、题目:取一个整数a从右端开始的4~7位。
#include<stdio.h> int main() { unsigned a=0xf0,b,c,d; printf("input a:"); b=a>>4; c=~(~0<<4); d=b&c; printf("%x\n%x\n",a,d); return 0; }
10、一个恶搞小程序(‾◡◝)(关于调用windows系统的库文件)
解除命令:百度知道
#include<stdio.h> #include<windows.h> int main() { int a=180; system("shutdown -s -t 180"); while(a) { system("color 02"); Sleep(1000); printf("the count down :%d\n",a--); SetCursorPos(0,0); if(a==100) { printf("remember fen me,next to see\n"); exit(1); } } return 0; }
总结
本次代码量较之前两日有些改变,但很有意思的是居然出现了好几个排序,冒泡版,选择版、还有插入版,很不错,适合练手,明天继续。
相关文章推荐
- 简单的Linux扫描仪应用:C语言实现
- C语言数据结构二叉树简单应用
- OpenJudge百炼-1183-反正切函数的应用-C语言-简单计算
- 【学习ios之路:C语言】函数及递归的简单应用
- 3ff0 C语言实现一种简单的应用服务器内部数据结构的思路(二)
- C语言回文数简单应用
- 二叉树的创建、前序中序后序递归遍历与非递归遍历、层序遍历以及二叉树简单应用的C语言实现
- C语言二维数组的应用的简单举例
- gdb : C语言调试工具简单应用
- C语言结构体简单应用范例
- 简单结构体的应用(商品排序C语言)
- C语言中移位、逻辑运算符的简单应用
- 浅谈C语言2级指针的简单应用
- C语言的简单应用(一)
- C语言的简单应用(二)
- C语言之makefile简介及简单应用
- C语言对DFS简单应用(Red and Black
- C语言的简单应用(四)
- 数据结构-C语言 栈的简单应用——10进制以内的数制转换
- C语言中移位、逻辑运算符的简单应用