zoukankan      html  css  js  c++  java
  • C语言考核

    C语言考核

    猴子偷桃

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <math.h>
    #include <time.h>
    #include <Windows.h>
    
    int sum = 1;
    int f(int n, int sum) {
    	if (n > 0) {
    		return f(n - 1, 2 * sum + 2);
    	}
    	else {
    		return sum;
    	}
    }
    int main() {
    	int n = 9, sum = f(n, 1);
    	printf("%d\n", sum);
    }
    

    成绩等级

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <math.h>
    #include <time.h>
    #include <Windows.h>
    
    int main(void)
    {
    	float score;
    	printf("请输入您的考试成绩:");
    	scanf("%f", &score);
    	if (score >= 90 && score <= 100)
    	{
    		printf("优秀!\n");
    	}
    	else if (score >= 80 && score <= 89)
    	{
    		printf("良好!\n");
    	}
    	else if (score >= 60 && score <= 79)
    	{
    		printf("及格!\n");
    	}
    	else if (score >= 0 && score <= 59)
    	{
    		printf("补考!继续努力!\n");
    	}
    	else
    	{
    		printf("请重新输入!\n");
    	}
    	return 0;
    }
    

    降序输出三个数

    #define _CRT_SECURE_NO_WARNINGS 1
    #include<stdio.h>  
    #include <stdlib.h>
    int main()
    {
    	int a, b, c, t;
    	printf("请输入三个数:\n");
    	scanf("%d%d%d", &a, &b, &c);
    
    	if (a < b)
    	{
    		t = a;
    		a = b;
    		b = t;
    	}
    	if (a < c)
    	{
    		t = a;
    		a = c;
    		c = t;
    	}
    	if (b < c)
    	{
    		t = b;
    		b = c;
    		c = t;
    	}
    	printf("%d %d %d\n", a, b, c);
    	system("pause");
    	return 0;
    }
    
    #define _CRT_SECURE_NO_WARNINGS 1
    #include<stdio.h>  
    #include <stdlib.h>
    
    void Swap(int* px, int* py)
    {
    	int tmp = 0;
    	tmp = *px;//解引用
    	*px = *py;
    	*py = tmp;
    }
    
    int main()
    {
    	int a, b, c;
    	printf("请输入三个数:\n");
    	scanf("%d%d%d", &a, &b, &c);
    
    	if (a < b)
    	{
    		Swap(&a, &b);
    	}
    	if (a < c)
    	{
    		Swap(&a, &c);
    	}
    	if (b < c)
    	{
    		Swap(&b, &c);
    	}
    	printf("%d %d %d\n", a, b, c);
    	system("pause");
    	return 0;
    }
    

    9*9乘法表

    int main() {
    	int i, j, n;
    	for (i = 1; i <= 9; i++) {
    		for (j = 1; j <= i; j++)
    			printf("%d*%d=%2d  ", i, j, i * j);
    
    		printf("\n");
    	}
    	return 0;
    }
     http://c.biancheng.net/cpp/html/2808.html
    
    int main()
    {
    	//外层循环变量,控制行
    	int i = 0; 
    	//内层循环变量,控制列
    	int j = 0;
    	for (i = 1; i <= 9; i++)
    	{
    		for (j = 1; j <= i; j++)
    		{
    			printf("%dx%d=%d\t", i, j, i * j);
    		}
    		//每行输出完后换行
    		printf("\n");
    	}
    }
    

    水仙花

    int main()
    {
    	int a, b, c, d;
    	printf("输出100-999的水仙花");
    	for (d = 100; d <= 999; d++)
    	{
    		a = d / 100;
    		b = (d - a * 100) / 10;
    		c = d % 10;
    		if (d == a * a * a + b * b * b + c * c * c)
    			printf("%d ", d);
    	}
    	printf("\n");
    }
    

    质因数

    #include <stdio.h>
    
    int main()
    {
        int i=2,n;
        printf("请输入一个正整数:");
        scanf("%d",&n);
            while(n!=i)             //若i=n,则质因数就是n本身
            {
                if(n%i==0)          //若i是质因数,则打印出i的值,并用商给n赋新值
                {
                    printf("%d\n",i);
                    n=n/i;
                }
                else i++;         //若不能被L整除,则算下一个i
            }
        printf("%d\n",n);
        return 0;
    }
    

    同学捐款

    #include <stdio.h>
    
    int main()
    {
        int i;
        float amount,aver,total;
        for(i=1,total=0;i<=10;i++)
        {
            printf("请%d个同学捐款:",i);
            scanf("%f",&amount);
            total=total+amount;
            if(total>=100000)
                break;
        }
        aver=total/(i-1);
        printf("总捐款人数为%d\n",(i-1));
        printf("人均捐款金额为%f\n",aver);
        return 0;
    }
    

    累加和

    #include <stdio.h>int main(){    int i,n;    double factorial;    printf("输入n的值:");    scanf("%d",&n);    factorial=1;    for(i=1;i<=n;i++)        factorial=factorial*i;    printf("%d!=%.0f\n",n,factorial);    return 0;}
    

    输入15个数升序输出10个数字,冒泡and选择排序

    #define NUMBER 15
    void bsort(int x[], int n)
    {
    	int i, j;
    	for (i = 0; i < n - 1; i++)
    	{
    		for (j = 1; j < n - i; j++)
    		{
    			if (x[j] < x[j - 1])
    			{
    				int tmp = x[j];
    				x[j] = x[j - 1];
    				x[j - 1] = tmp;
    			}
    		}
    	}
    }
    int main(void)
    {
    	int i, a[NUMBER];
    	puts("please input the elements.");
    	for (i = 0; i < NUMBER; i++)
    	{
    		printf("NO.%d = ", i + 1); scanf("%d", &a[i]);
    	}
    	bsort(a, NUMBER);
    	puts("\n====================");
    	for (i = 0; i < NUMBER-5; i++)
    	{
    		printf("a[%d] = %d\n", i, a[i]);
    	}
    	return 0;
    }
    
    int main(void)
    {
    	int a[10];
    	int i, j, t;
    	printf("input 10 numbers:\n");
    	for (i = 0; i < 10; i++) {
    		scanf("%d", &a[i]);
    	}
    	printf("\n");
    	//一共排9趟序,因为最后一趟只剩一个数,不需要排
    	for (i = 0; i < 9; i++) {
    		//每趟从第一个数开始排,第一趟排完将最大的一个数沉底(即放在数组最后一个位置),第二趟不需要再管最后一个数了,后面同理,第i趟只需要管前面9 - i个数就够了。
    			for (j = 0; j < 9 - i; j++) {
    				//前面一个数比后面一个数大时,交换他俩的位置
    				if (a[j] > a[j + 1]) {
    					t = a[j];
    					a[j] = a[j + 1];
    					a[j + 1] = t;
    				}
    			}
    	}
    	printf("the sorted numbers:\n");
    	//最后将排好序的数组顺序输出
    	for (i = 0; i < 10; i++) {
    		printf("%d\t", a[i]);
    	}
    	printf("\n");
    }
    
     #include<stdio.h> void main(){int t,i,j,a[10]={1,3,5,7,8.10,2,4,6,9};for(i=1;i<10;i++){	for(j=0;j<i;j++){	if(a[i]<a[j])	{		t=a[i];		a[i]=a[j];		a[j]=t;	}	}}for(i=0;i<10;i++)	printf("%3d",a[i]); printf("\n"); } http://c.biancheng.net/cpp/html/3463.html
    

    百钱买百鸡

    #include <stdio.h>int main(){    int i, j, k;    printf("百元买百鸡的问题所有可能的解如下:\n");    for( i=0; i <= 100; i++ )        for( j=0; j <= 100; j++ )            for( k=0; k <= 100; k++ )            {                if( 5*i+3*j+k/3==100 && k%3==0 && i+j+k==100 )                {                    printf("公鸡 %2d 只,母鸡 %2d 只,小鸡 %2d 只\n", i, j, k);                }            }    return 0;}
    
    #include <stdio.h>
    
    int main()
    {
        int chick, female, male;
        for (chick = 0; chick <= 100; chick++)
        {
            for (female = 0; female <= 33; female++)
            {
                for (male = 0; male <= 20; male++)
                {
                    if (chick / 3 + female * 3 + male * 5 == 100 && chick % 3 == 0 && chick + female + male == 100)
                        printf("小鸡有%d只,母鸡有%d只,公鸡有%d只.\n", chick, female, male);
                }
            }
        }
    }
    

    输入10个数字输出最大值和最小值,MIN和MAX函数

    #include <stdio.h>
    int main ()
    {
     int i,max,min;
     printf("输入数字:");
     scanf("%d\n",&max);//先输入一个数字当作最大值
     for(i=1;i<=9;i++)//10-1=9,循环9次之后得到结果
     {
      scanf("%d",&min);//把每一次输入的数字当作最小值
      if(max>min)//比较大小
      {
       max=max;
       min=min;
      }
      else
      {
       max=min;
       min=max;
      }
     }
     printf("最大值是%d,最小值是%d",max,min);//输出!
     }
    
    
    #include <stdio.h>
    #include <math.h>
    int main(){
    	int a,b,c,d;
    	int temp, temp1,temp2;
    	int max(int a,int b);
    	int min(int a,int b);
    	printf("请输入a的值:");
    	scanf("%d",&a);
    	printf("请输入b的值:");
    	scanf("%d",&b);
    	printf("请输入c的值:");
    	scanf("%d",&c);
    	printf("请输入d的值:");
    	scanf("%d",&d);
    	temp1=max(a,b);	
    	temp2=max(c,d);
    	temp=max(temp1,temp2);
    	printf("四个数中最大的是:%d",temp);
    	temp1=min(a,b);	
    	temp2=min(c,d);
    	temp=min(temp1,temp2);
    	printf("四个数中最小的是:%d",temp);
    }
    	int max(int a,int b){
    		if(a>b){
    			return a;
    		}else{
    			return b;
    		}
    	}
    	int min(int a,int b){
    		if(a<b){
    			return a;
    		}else{
    			return b;
    		}
    	}
    

    直角三角形

    int main(void){	int i, j, n;  	printf("请输入图形的行数");	scanf("%d", &n);	for ( i = 0; i < n; i++)  //i代表行数,假如当n=6i就要进行6次循环	{		for (j = i; j >= 0; j--) //j负责打印星星			printf("* ");		printf("\n");	}	system("pause");	return EXIT_SUCCESS;}https://blog.csdn.net/qq_42855675/article/details/81412200https://blog.csdn.net/wgajc4840/article/details/103652479https://www.sqlsec.com/2018/10/for.htmlhttps://blog.csdn.net/ccjsj1/article/details/5448732
    

    菱形

    int main() {    int line;  // 菱形总行数    int column;  // 菱形总列数    int i;  // 当前行    int j;  // 当前列    printf("请输入菱形的行数(奇数):");    scanf("%d", &line);    if (line % 2 == 0) {  // 判断是否是奇数        printf("必须输入奇数!\n");        exit(1);    }    column = line;  // 总行数和总列数相同    for (i = 1; i <= line; i++) {  // 遍历所有行        if (i < (line + 1) / 2 + 1) {  // 上半部分(包括中间一行)            for (j = 1; j <= column; j++) {  // 遍历上半部分的所有列                if ((column + 1) / 2 - (i - 1) <= j && j <= (column + 1) / 2 + (i - 1)) {                    printf("*");                }                else {                    printf(" ");                }            }        }        else {  // 下半部分            for (j = 1; j <= column; j++) {  // 遍历下半部分的所有列                if ((column + 1) / 2 - (line - i) <= j && j <= (column + 1) / 2 + (line - i)) {                    printf("*");                }                else {                    printf(" ");                }            }        }        printf("\n");    }    return 0;}
    
    int main()
    {
    	int n;
    	scanf("%d", &n);
    	n = n | 1;
    	for (int r = 0; r < n; r++) {
    		for (int c = 0; c < n; c++) {
    			int n2 = n / 2;
    			if (r <= n2 && c >= n2 - r && c <= n2 + r) {
    				printf("*");
    			}
    			else if (r > n2 && c >= r - n2 && c < n - r + n2) {
    				printf("*");
    			}
    			else {
    				printf(" ");
    			}
    		}
    		printf("\n");
    	}
    	return 0;
    }
    
    

    鸡兔同笼

     https://mp.weixin.qq.com/s/F_7ScNWbsAKay-XONGpwIQ
     int main() {
    
        int a, b, x, t = 1;
    
        printf("请输入鸡和兔子总数:");
        scanf("%d", &a);
        printf("请输入鸡和兔子脚的总数:");
        scanf("%d", &b);
    
        for (x = 0; x <= a; x++)
    
            if (x * 2 + (a - x) * 4 == b)
    
                printf("有%d鸡,%d兔子\n", x, a - x);
        t = 0;
        if (t == 1)
            printf("无解,输入错误\n");
        return 0;
    }
    
    int main()
    {
    	int a, b, c, d;//a:鸡,b:兔,c:头数,d:脚数
    	int i = 1;
    	printf("请输入鸡和兔总的头数:");
    	scanf("%d", &c);
    	while (i)
    	{
    		printf("请输入鸡和兔总的脚数:");
    		scanf("%d", &d);
    		if (d % 2 == 1)
    		{
    			printf("鸡兔的总脚数不能是奇数\n");
    			continue;
    		}
    		else if (d % 2 == 0)
    			i = 0;
    	}
    	for (a = 1; a < c; a++)
    	{
    		b = c - a;
    		if (a * 2 + b * 4 == d)
    			break;
    	}
    	printf("鸡的数量:%d只\n兔的数量:%d只\n\n", a, b);
    	return 0;
    }
    
    int main(){
    	int a,x,y,n,m;
    	scanf("%d",&a);
    	while(a--){
    		scanf("%d%d",&n,&m);
    		if(!(m%2)){//总腿数应为偶数
    			x=2*n-m/2;//鸡的个数
    			y=m/2-n;//兔的个数
    			if(x>=0&&y>=0){
    				printf("%d %d\n",x,y);
    				continue;
    			}
    		}
    		printf("No answer\n");
    	}
    	return 0;
    }
    
    int main(){
    	int a,x,y,n,m;
    	scanf("%d",&a);
    	while(a--){
    		scanf("%d%d",&n,&m);
    		if(!(m%2)){//总腿数应为偶数
    			x=2*n-m/2;//鸡的个数
    			y=m/2-n;//兔的个数
    			if(x>=0&&y>=0){
    				printf("%d %d\n",x,y);
    				continue;
    			}
    		}
    		printf("No answer\n");
    	}
    	return 0;
    }
    https://blog.dotcpp.com/a/8639
    
    int main()
    {
    	int a,b,n, m;
    	// a鸡的数量
    	// b兔的数量
    	// n鸡兔总数
    	// m总脚数
    	scanf("%d %d", &n,&m);
    	a = (4 * n - m) / 2;//算出鸡的数量
    	b = n - a;//算出兔的数量
    
    	if (a <= 0 || b <= 0)
    	{
    		//结果小于等于0,答案不成立,无解
    		printf("No answer");
    	}
    	else
    	{
    		//结果大于0
    		printf("%d %d", a, b);
    	}
    	return 0;
    }
    
    int main(void)
    {
    	int head, foot, num1, num2;
    	printf("请输入鸡和兔的总头数和总脚数,用空格隔开:\n");
    	scanf("%d %d", &head, &foot);
    	if (foot % 2 == 1 || foot < head * 2)
    	{
    		printf("输入有误!\n");
    		return 0;
    	}
    	num1 = (foot - head * 2)/(4 - 2);
    	num2 = head - num1;
    	if ((num1 >= 0) && (num2 >= 0))
    		printf("兔子个数:%d,鸡的个数:%d\n", num1, num2);
    	else
    		printf("输入有误!\n");
    
    	return 0;
    }
    

    鸡兔鸟

    void Find(int n);
    void Find(int n)
    {
    	int i, j, k;//循环变量,分别为鸟鸡兔
    	int sumi = 0;//算法优化测试1
    	int sumj = 0;//2
    	int sumk = 0;//3
    	for (i = 1; i <= n; i++)
    	{
    		sumi++;
    		for (j = 1; j <= n - i; j++)
    		{
    			sumj++;
    			for (k = 1; k <= n - i - j; k++)
    			{
    				sumk++;
    				//头和脚都要相等
    				if (((i * 9 + j * 1 + k * 1) == n) && ((i * 2 + j * 2 + k * 4) == n))
    				{
    					printf("%d %d %d\n", i, j, k);
    				}
    
    			}
    		}
    	}
    	printf("i一共循环了多少%d次\n", sumi);
    	printf("j一共循环了多少%d次\n", sumj);
    	printf("k一共循环了多少%d次\n", sumk);
    }
    int main()
    {
    	int number;
    	scanf("%d", &number);
    	Find(number);
    	return 0;
    }
    

    结构体

    #include<iostream>
    #include<cstring>
    #define PERSON 10 
    #define COURSE 3
    using namespace std;
    struct Student{
    	char name[10];
    	int  numbers;
    	int  age;
    	int  score[COURSE];
    	int  Total_score;
    };
    
    int main(){
    	Student student[PERSON],student_T,max1[COURSE];
    	int i,j,k,t,m;
    	cout<<"				姓名	学号	年龄	语文成绩	数学成绩	英语成绩"<<endl;
    	for(i=0;i<PERSON;i++){
    		cout<<"现在请输入第"<<i+1<<"位小学生的信息";
    		cin>>student[i].name>>student[i].numbers>>student[i].age;
    		if(student[i].age<6||student[i].age>14){
    			cout<<"年龄超出有效范围,请重新输入:";
    			cin>>student[i].age;
    		}
    		for(j=0;j<COURSE;j++){
    			cin>>student[i].score[j];
    			if(student[i].score[j]<0||student[i].score[j]>100){
    				cout<<"成绩超出有效范围,请重新输入第"<<j+1<<"门成绩:";
    				cin>>student[i].score[j];
    			}
    		}		
    	}
    	for(i=0;i<PERSON;i++)//求总分 
    		student[i].Total_score=student[i].score[0]+student[i].score[1]+student[i].score[2];
    	
    	cout<<"\n"<<"\n"<<"---------------------------------------------------------------------------------------------------------"<<endl;
    	cout<<"			姓名	学号	年龄	语文成绩	数学成绩	英语成绩	总分"<<endl;			 
    	cout<<"---------------------------------------------------------------------------------------------------------"<<endl;			
    	for(i=0;i<PERSON;i++){
    		cout<<"第"<<i+1<<"位小学生的信息"<<"\t"<<student[i].name<<"\t"<<student[i].numbers<<"\t"<<student[i].age<<"\t";
    		for(j=0;j<COURSE;j++)
    			cout<<student[i].score[j]<<"\t"<<"\t";
    		cout<<student[i].Total_score<<endl;
    		} 
    	for(i=0;i<PERSON-1;i++){//总分排序
    		k=i;
    		for(j=i+1;j<PERSON;j++){
    			if(student[j].Total_score>student[k].Total_score)
    				k=j;
    		}
    		student_T=student[k];
    		student[k]=student[i];
    		student[i]=student_T;
    	}
    	cout<<"\n"<<"\n"<<"	总分排名"<<endl; 
    	cout<<"----------------------"<<endl;
    	cout<<"排名	姓名	总分"<<endl;
    	cout<<"----------------------"<<endl;
    	for(i=0;i<PERSON;i++)//输出总分排名 
    		cout<<i+1<<"\t"<<student[i].name<<"\t"<<student[i].Total_score<<endl;
    
    	for(m=0;m<COURSE;m++){//最高分排序
    		for(i=0;i<PERSON-1;i++){
    			k=i;
    			for(j=i+1;j<PERSON;j++){
    				if(student[j].score[m]>student[k].score[m])
    					k=j;
    			}
    			student_T=student[k];
    			student[k]=student[i];
    			student[i]=student_T;
    		}
    		max1[m]=student[0];
    	}
    	cout<<"\n"<<"\n"<<"		单科最高分"<<endl;
    	cout<<"------------------------------------"<<endl;
    	cout<<"科目	最高分	姓名	学号	年龄"<<endl;
    	cout<<"------------------------------------"<<endl;
    	for(i=0;i<COURSE;i++){
    		if(i==0)                 //输出科目 、最高分  
    			cout<<"语文"<<"\t"<<max1[0].score[0]<<"\t";
    		else if(i==1)
    				cout<<"数学"<<"\t"<<max1[1].score[1]<<"\t";
    			else if(i==2)
    					cout<<"英语"<<"\t"<<max1[2].score[2]<<"\t";
    		cout<<max1[i].name<<"\t"<<max1[i].numbers<<"\t"<<max1[i].age<<endl;
    	}
    	system("pause");
    	return 0;
    }
    
    
  • 相关阅读:
    过河问题 贪心
    喷水装置2 贪心
    喷水装置 贪心算法
    大红数星星 图论 XD网络赛
    Bi-shoe and Phi-shoe 欧拉函数 素数
    c++ 打飞机游戏开发日志
    POJ 1129 Channel Allocation DFS 回溯
    POJ 2676 Sudoku
    LibreOJ #100. 矩阵乘法
    BZOJ 1009: [HNOI2008]GT考试
  • 原文地址:https://www.cnblogs.com/DTsec/p/15724722.html
Copyright © 2011-2022 走看看