//1.ASCII码值 ->相应字符 #include <stdio.h> int main() { int asc; scanf("%d",&asc); printf("ASCII码值:%d\n",asc); printf("对应字符:%c\n",asc); }
//2.读入浮点数,输出小数形式和指数形式 #include <stdio.h> #include <math.h> int main() { float floatNumber; scanf("%f",&floatNumber); printf("The input is %f or %e\n",floatNumber,floatNumber); }
//3.读入两个整数,计算和差积商的平均值 #include <stdio.h> int main() { int data1,data2; float result; scanf("%d %d",&data1,&data2); result = ((data1 + data2) + (data1 - data2) + (data1 * data2) + (data1 /(float)data2))/4.0; printf("这两个整数的和差积商的平均值 = %f\n",result); }
//4.输入姓名,下一行显示输入的姓名 #include <stdio.h> int main() { char name[12]; printf("请输入你的姓名:"); scanf("%s",&name); printf("你的姓名是%s\n",name); }
//5.求方程ax^2 + bx + c = 0的根,a b c 由键盘输入 #include <stdio.h> #include <math.h> int main() { float a,b,c; printf("请输入二次方程的三个系数a b c:"); scanf("%f%f%f",&a,&b,&c); printf("二次方程为:%fx^2 + %fx + %f = 0\n",a,b,c); float delta; delta = b*b-4*a*c; printf("delta:%f",delta); if(delta < 0) { printf("该二次方程无实根"); } else if(delta == 0) { printf("该二次方程的唯一实根为:%f",-b/(4*a*c)); } else { printf("该二次方程的有两个实根分别为:%f,%f",(-b+sqrt(delta))/(2*a),(-b-sqrt(delta))/(2*a)); } }
//6.输入任意四个数,按从大到小的顺序排序并输出 #include <stdio.h> int main() { int a[4]; int tem; //中间变量 printf("请输入四个整数:"); for(int i=0;i<4;i++) { scanf("%d",&a[i]); } printf("输入的顺序为:"); for(int j=0;j<4;j++) { printf("%d ",a[j]); } printf("\n"); printf("从大到小的顺序排列为:"); for(int k=0;k<4;k++) { for(int m=k;m<4;m++) { if(a[m] > a[k]) { //调换顺序 tem = a[m]; a[m] = a[k]; a[k] = tem; } } printf("%d ",a[k]); } printf("\n"); }
//7.统计字符串s含有字符串t的数目 #include <stdio.h> #include <string.h> int main() { char s[100],t[100]; printf("请输入主字符串:\n"); gets(s); //等价于scanf("%s",s); %s 表示获取的是字符串 printf("请输入子字符串:\n"); gets(t); //scanf("%s",t); char* p = s; //定义一个指针,记录当前位置 int count = 0; //记录子串出现的次数 while((p = strstr(p,t)) != NULL) //strstr函数:找出t字符串在p字符串中第一次出现的位置(不包括t的串结束符,如果找到返回该位置的指针。若找不到,返回NULL指针。 { count ++; p++; } printf("字符串s含有字符串t的数目为:%d\n",count); }
//8.编写一个递归函数,当从键盘接收一个数字后,实现其阶乘的运算 #include <stdio.h> //阶乘运算,递归 int factorial(int a) { if(a<=1) return 1; return(a*factorial(a-1)); //此处为递归 } int main() { int a,b; printf("输入一个数字:\n"); scanf("%d",&a); b=factorial(a); printf("%d 的阶乘为 %d\n",a,b); return 0; }
//9.求二维数组中每行的最大值或最小值 #include "stdio.h" int main() { int a[4][4]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; int max,min; int i,j; for(i=0;i<4;i++) { max=min=a[i][0]; for(j=1;j<4;j++) { if(a[i][j]>max) max=a[i][j]; if(a[i][j]<min) min=a[i][j]; } printf("第%d行的最大值为:%d,最小值为:%d\n",i+1,max,min); } }
//10.给定一维数组,按指定规则输出矩阵 #include "stdio.h" int main() { int a[4] = {5,6,9,10}; int temp; //中间变量 int i,j; //从大到小排序 for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(a[j] > a[i]) { temp = a[i]; a[i] = a[j]; a[j] = temp; } } } for(i=4;i>0;i--) { int s = i-1; //第一列数在数组中的位置 for(j=0;j<4;j++) { printf("%d ",a[(s++)%4]); } printf("\n"); } }