C语言
C语言相关知识。
____-7
网络安全科班硕士毕业,目前任职国内某安全公司网络安全研究员一职,专注网络安全运营、网络安全攻防、网络安全前沿知识研究与落地,欢迎交流。
展开
-
用函数求整数a和b中的大者。(通过指针变量访问它所指向的函数)
#include <stdio.h>#include <conio.h>int main(){ int max(int,int); int (*p)(int,int); int a,b,c; p=max; printf("enter a and b:\n"); scanf("%d,%d",&a,&b); c=(*p)(a,b); printf...转载 2018-03-01 21:27:32 · 2018 阅读 · 0 评论 -
输入4个整数,找出其中最大的数。用函数的嵌套调用来处理
#include #include int main(){ int max4(int,int,int,int); printf("请输入四个数:\n"); int a,b,c,d,max; scanf("%d,%d,%d,%d",&a,&b,&c,&d); max=max4(a,b,c,d); printf("最大数为:%d",max); getc转载 2018-01-30 12:39:36 · 10784 阅读 · 6 评论 -
输入4个整数,找出其中最大的数。未用函数的嵌套调用来处理
#include #include int main(){ int max(int,int); printf("请输入四个数:\n"); int a,b,c,d,max1,max2,max3; scanf("%d,%d,%d,%d",&a,&b,&c,&d); max1=max(a,b); max2=max(max1,c); max3=max(ma原创 2018-01-30 12:37:18 · 1561 阅读 · 0 评论 -
输入两个整数,要求输出其中值较大者。要求用函数来找到大数
#include #include int main(){ int max(int x,int y); int a,b,c; printf("请输入两个整数:\n"); scanf("%d,%d",&a,&b); c=max(a,b); printf("最大数为:%d",c); getch(); return 0;} int max(原创 2018-01-30 12:02:29 · 29495 阅读 · 1 评论 -
用函数调用实现输出
#include #include int main(){ void xing(); void printf_zi(); xing(); printf_zi(); xing(); getch(); return 0;} void xing(){ printf ("***************\n"); }void p原创 2018-01-30 10:44:25 · 3903 阅读 · 2 评论 -
有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”
#include #include int main(){ int a[7]={1,2,3,4,5,6,7}; int i,num,n,low,high,mid; printf("数组为:\n"); for(i=0;i printf("%3d",a[i]); printf("\n请输入数组中的一个数:"); scanf("%d",&num);转载 2018-01-29 20:56:25 · 13160 阅读 · 3 评论 -
输出以下的杨辉三角形(要求输出10行)
#include #include int main(){ int a[11][11]; int i,j; for(i=0;i for(j=0;j if(j==0) a[i][j]=1; else if(j>i){ a[i][j]=0; break; }转载 2018-01-29 11:23:11 · 10638 阅读 · 0 评论 -
输出指定行杨辉三角形(等腰三角形型)
#include #include int main(){int a[100][100]={0};int i,j,n;printf("Input N:");scanf("%d",&n);for(i=0;i{for(j=0;j{if(jelse if(i==0) break;elsea[i][j]=a[i-1][j-1]+a[i-1][j]转载 2018-01-29 12:04:27 · 8035 阅读 · 2 评论 -
有一个一排好序的数组,要求输入一个人数后,按原来排序的规律将它插入数组中
法一:#include #include int main(){ int a[6]={1,4,6,7,11}; int i,j,num; printf("数组为:\n"); for(i=0;i printf("%4d",a[i]); printf("\n请输入一个数:"); scanf("%d",&num); for(i=0;i原创 2018-01-29 10:59:04 · 3212 阅读 · 0 评论 -
求一个3*3的整形矩阵对角线元素之和
#include #include int main(){ int a[3][3]; int i,j; int sum=0; for(i=0;i for(j=0;j scanf("%d",&a[i][j]); } for(i=0;i for(j=0;j if((i==j)||(i+j==2))原创 2018-01-28 11:30:42 · 3988 阅读 · 6 评论 -
用选择法对10个整数排序
#include #include int main(){ int a[10],i,j,t=0; printf("请输入10个整数:\n"); for(i=0;i scanf("%d",&a[i]); printf("输入的10个整数为:\n"); for(i=0;i printf("%3d",a[i]); for(i=0;i原创 2018-01-26 16:59:42 · 19592 阅读 · 11 评论 -
用筛选法求出100之内的素数
用筛法求素数的基本思想是:把从1开始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子为空时结束。如有:1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 2021 22 23 24 25 26 27 28 29 301不是素数,去掉。剩下的数中2最小,原创 2018-01-26 16:05:21 · 21389 阅读 · 2 评论 -
函数的递归调用:age(n)=10(n=1); age(n)=age(n-1)+2(n>1)
#include #include int main(){ int age(int); int n,num; scanf("%d",&n); num=age(n); printf("%d",num); getch(); return 0;}int age(int n){ int c; if(n==1) c=10原创 2018-01-30 15:39:50 · 1710 阅读 · 0 评论 -
用递归方法求n!
#include #include int main(){ int digui(int); printf("请输入n:"); int n,num; scanf("%d",&n); num=digui(n); printf("n!=%d",num); getch(); return 0;} int digui(int n){ i原创 2018-01-30 15:51:22 · 5101 阅读 · 0 评论 -
输出二维数组任一行任一列元素的值
#include <stdio.h>#include <conio.h>int main(){ int a[3][4]={1,3,4,5,7,8,9,11,13,15,17,19}; int (*p)[4],i,j; p=a; printf("请输入行和列:\n"); scanf("%d,%d",&i,&j); printf("a[%d,%d]=...原创 2018-03-01 20:40:06 · 6572 阅读 · 0 评论 -
有一个3*4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值
#include<stdio.h>#include<conio.h>int main(){ int a[2][3]={1,3,5,7,8,9}; int *p; for(p=a[0];p<a[0]+6;p++){ if((p-a[0])%3==0) printf("\n"); printf("%d ",*p); } getch(); ...原创 2018-03-01 10:36:16 · 8001 阅读 · 0 评论 -
用指针方法对10个整数按有大到小顺序排序
#include<stdio.h>#include<conio.h>int main(){ void sort(int x[],int n); int i,*p,a[10]; p=a; printf("输入10个整数:\n"); for(i=0;i<10;i++) scanf("%d",p++); p=a; sort(p,10); printf(...转载 2018-03-01 09:53:09 · 12339 阅读 · 0 评论 -
有一个整型数组a,有10个元素,要求输出数组中的全部元素。(通过指针引用)
#include<stdio.h>#include<conio.h>int main(){ int a[10]={1,3,2,4,6,5,9,8,7,0}; int *p=a,i; for(i=0;i<10;i++){ printf("%d ",*(p+i)); } getch(); return 0;}原创 2018-02-28 21:36:26 · 22830 阅读 · 0 评论 -
输入3个整数a,b,c,要求按由大到小的顺序将它们输出。用函数实现。
#include<stdio.h>#include<conio.h>int main(){ void exchange(int *p1,int *p2,int *p3); int a,b,c,*ptr1,*ptr2,*ptr3; printf("请输入3个整数:"); scanf("%d,%d,%d",&a,&b,&c); ptr1=&am...转载 2018-02-28 21:06:59 · 19095 阅读 · 0 评论 -
输入a和b两个整数,按先大后小的顺序输出a和b(指针变量作为函数参数)
#include<stdio.h>#include<conio.h>int main(){ void swap(int *p1,int *p2); int a,b; int *ptr1,*ptr2; printf("请输入两个整数:"); scanf("%d,%d",&a,&b); ptr1=&a; ptr2=&b; if(a...原创 2018-02-28 18:13:19 · 16731 阅读 · 0 评论 -
输入a和b两个整数,按先大后小的顺序输出a和b(指针变量实现)
#include<stdio.h>#include<conio.h>int main(){ int *p1,*p2,*p,a,b; printf("请输入两个整数:"); scanf("%d,%d",&a,&b); p1=&a; p2=&b; if(a<b){ p=p1; p1=p2; p2=p; }原创 2018-02-28 18:03:27 · 12952 阅读 · 0 评论 -
写一个函数,用“起泡法”对输入的10个字符按由小到大的顺序排列
#include<stdio.h>#include<conio.h>#include<string.h>int main(){ void qipao(char array[10]); printf("输入10个字符:\n"); char a[10],i; gets(a); qipao(a); for(i=0;i<10;i++) print...原创 2018-02-28 16:39:17 · 16940 阅读 · 0 评论 -
编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数
#include<stdio.h>#include<conio.h>int main(){ int count(char array[20]); char a[20]="123 abc ...def2"; count(a); getch(); } int count(char array[20]){ int a=0,b=0,c=0,d=0,i; for...原创 2018-02-28 16:27:49 · 19220 阅读 · 0 评论 -
写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串
#include<stdio.h>#include<conio.h>#include<string.h> int main(){ char invert(char array[10]); char a[20]; printf("请输入字符串:\n"); gets(a); invert(a); return 0; getch(); }void in...原创 2018-02-27 17:56:01 · 12102 阅读 · 0 评论 -
汉诺塔问题
#include #include int main(){ void hanoi(int n,char one,char two,char three); int m; printf("输入层数"); scanf("%d",&m); printf("移动%d层的步骤为:\n",m); hanoi(m,'A','B','C'); getch();转载 2018-01-30 16:28:32 · 149 阅读 · 0 评论 -
输入两个正整数m和n,求其最大公约数和最小公倍数
#include #include int main(){ printf("请输入两个数:"); int x,y,t,m,n,i; scanf("%d,%d",&x,&y); if(x>y){ t=x; x=y; y=t; } for(i=1;i if(x%i==0&&y%i==0) m=i; } n=(x*y)/m; printf("最大公约数原创 2018-01-18 10:54:55 · 306 阅读 · 0 评论 -
输出所有的“水仙花数”
#include #include /*法一 int main(){ int n; for(n=100;n if(n==(n/100)*(n/100)*(n/100)+(n%100/10)*(n%100/10)*(n%100/10)+(n%10)*(n%10)*(n%10)) printf("%d ",n); } getch(); return 0;} *//*法二 i原创 2018-01-18 10:43:24 · 758 阅读 · 0 评论 -
统计1000人中捐款,当总数达到10w就结束并统计此时捐款人数以及平均每人捐款的数目
#include #include int main(){ float num,total=0,ave; int i; for(i=1;i printf("请输入捐款金额:"); scanf("%f",&num); total=total+num; if(total>=100000) break; } ave=total/i; printf("捐款人原创 2018-01-18 10:18:18 · 1674 阅读 · 0 评论 -
求1-1/2+1/3-1/4+...+1/99-1/100
//求1-1/2+1/3-1/4+...+1/99-1/100#include #include int main(){ int j; float sum; for(sum=0.0,j=1;j if(j%2==0){ sum=sum-1.0/j; } else{ sum=原创 2018-01-15 16:52:09 · 3013 阅读 · 0 评论 -
给出一个大于或等于3的正整数,判断它是不是一个素数
//给出一个大于或等于3的正整数,判断它是不是一个素数#include #include int main(){ printf("请输入一个大于或等于3的正整数:") ; int a,b,c=0; scanf("%d",&b); for(a=2;a if(b%a==0) c++; } if(c==0) printf(原创 2018-01-15 16:49:44 · 13374 阅读 · 0 评论 -
将一个二维数组行和列的元素互换,存到另一个二维数组中
#include #include int main(){ int a[2][3]={1,2,3,4,5,6}; int b[3][2],i,j; printf("数组初始为:\n"); for(i=0;i for(j=0;j {printf("%d ",a[i][j]); b[j][i]=a[i][j]; }原创 2018-01-23 09:41:23 · 16223 阅读 · 1 评论 -
输入一行字符,统计其中有多少个单词,单词之间用空格隔开
#include #include int main(){ char string [20]; int i,num=0,word=0; char c; gets(string); for(i=0;(c=string[i])!='\0';i++){ if(c==' ') word=0; else if(word==0){ wor原创 2018-01-23 11:42:02 · 9322 阅读 · 2 评论 -
有3个字符串,要求找出其中最大者
#include #include #include int main(){ char str[3][20]; char string[20]; int i; printf("请分别输入3个字符串,以回车结束:\n"); for(i=0;i gets(str[i]); if(strcmp(str[0],str[1])>0) strc转载 2018-01-23 12:07:24 · 4544 阅读 · 0 评论 -
有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在行号列号
#include #include int main(){ int a[3][4]={1,2,3,4,5,6,7,8,23,48,11,12}; int i,j,max=a[0][0],row,colum; printf("数组为:\n"); for(i=0;i for(j=0;j printf("%4d",a[i][j]); pri原创 2018-01-23 09:54:50 · 31074 阅读 · 10 评论 -
有10个地区的面积,要求对它们按由小到大的顺序排列(冒泡法)
#include #include int main(){ printf("请输入10个地区的面积:(如2,3,...)\n"); int a[10],i,j,t; for(i=0;i scanf("%d,",&a[i]); } printf("输入的面积分别为:\n"); for(i=0;i printf("%d ",a[i]);原创 2018-01-22 18:09:50 · 9975 阅读 · 0 评论 -
用数组来求菲波那切数列问题
#include #include int main(){ int i; int f[20]={1,1}; for(i=2;i f[i]=f[i-1]+f[i-2]; } printf("20以内的菲波那切数列为:\n"); for(i=0;i if(i%5==0) printf("\n"); printf("原创 2018-01-22 17:40:45 · 404 阅读 · 0 评论 -
练习:用迭代法求x=√a。要求前后两次求出的x的差的绝对值小于10^-5
#include <stdio.h> #include <conio.h> #include <math.h> int main(){ float a,x0,x1; printf("请输入数字:"); scanf("%f",&a); x0=a/2; x1=(x0+a/x0); do{ x0=x1; x1=(x0+a...转载 2018-01-22 17:10:45 · 10848 阅读 · 0 评论 -
有一个分数序列2/1,3/2,5/3,8/5,13/8...求前20项之和
#include #include int main(){ int a=2,b=1,c=0,n=1; double d=0,sum=0; while(n d=(double)a/(double)b; c=a+b; b=a; a=c; sum=sum+d; n++; } pri原创 2018-01-22 16:43:19 · 8503 阅读 · 0 评论 -
编程找出1000以内的所有完数
#include #include int main(){ int i,n,sum,num; printf("找出指定数目以内的所有完数。请输入数字:"); scanf("%d",&num); for(n=2;n sum=0; for(i=1;i if(n%i==0) sum=sum+i; } i原创 2018-01-22 12:26:33 · 3180 阅读 · 0 评论 -
输入10个数,要求输出其中值最大的元素和该数是第几个数
#include #include int main(){ int max(int,int); int a[5],m,n,i; printf("请输入5个数:\n"); for(i=0;i scanf("%d,",&a[i]); printf("\n"); for(i=0;i printf("%d ",a[i]); for(i=原创 2018-01-30 17:00:53 · 8575 阅读 · 0 评论