首页 > 其他分享 >C语言小案例

C语言小案例

时间:2023-11-04 12:35:09浏览次数:27  
标签:count int C语言 案例 result printf input 100

1.设计一个递归函数,计算Ackerman的值。Ackerman函数定义如下:

             n+1                                 m=0

A(m,n)= A(m-1,1)                          m≠0,n=0

             A(m-1,A(m,n-1))               m≠0,n≠0

#include<stdio.h>

int A(int m,int n){
	int result;
    if(m==0){
    	result=n+1;
	}else if(n==0){
		result=A(m-1,n);
	}else{
		result=A(m-1,A(m,n-1));
	}
    return result;
}

int main(){
    int m,n;
    printf("请输入m,n:");
    scanf("%d %d", &m,&n);
    printf("Ackerman函数的值为:%d\n",A(m,n));
    return 0;
}

这个函数我也是第一次接触哈,具体介绍可以看一下这个链接哦!

http://baike.baidu.com/item/阿克曼函数/10988285

2.设计一个函数,判断一个整数是否为素数。

#include<stdio.h>
int Number(int n){
	if(n<=1){
		return 0;
	}
	for(int i=2;i*i<n;i++){
		if((n%i)==0){
    	return 0;
	}else{
		return 1; 
	}
	}
}

int main(){
    int n;
    printf("请输入n:");
    scanf("%d", &n);
    if(Number(n)){
    	printf("%d是一个素数",n); 
	}else{
		printf("%d不是一个素数",n); 
	}
    return 0;
}

3.杨辉三角形

#include <stdio.h>
#define N 14
void main()
{
    int i, j, k, n=0, a[N][N];  /*定义二维数组a[14][14]*/
    while(n<=0||n>=13){  /*控制打印的行数不要太大,过大会造成显示不规范*/
        printf("请输入要打印的行数:");
        scanf("%d",&n);
    }
    printf("%d行的杨辉三角如下:\n",n);
    for(i=1;i<=n;i++)
        a[i][1] = a[i][i] = 1;  /*两边的数令它为1,因为现在循环从1开始,就认为a[i][1]为第一个数*/
    for(i=3;i<=n;i++)
        for(j=2;j<=i-1;j++)
            a[i][j]=a[i-1][j-1]+a[i-1][j];  /*除两边的数外都等于上两顶数之和*/ 
    for(i=1;i<=n;i++){
        for(k=1;k<=n-i;k++)
            printf("   ");  /*这一行主要是在输出数之前打上空格占位,让输出的数更美观*/
        for(j=1;j<=i;j++)  /*j<=i的原因是不输出其它的数,只输出我们想要的数*/
            printf("%6d",a[i][j]);
        
        printf("\n");  /*当一行输出完以后换行继续下一行的输出*/
    }
    printf("\n");
}

C语言小案例_i++

4.编写一个程序,计算两个十维向量的和。

【什么是十维向量?十维向量是一个有十个元素的向量。在数学和计算机科学中,向量是一组有序的数值,可以表示在十个不同的方向上的大小和方向。每个元素都对应于一个维度,也可以看作是一个十维空间中的点。十维向量可以用来表示包含十个特征的数据,例如在机器学习中用于描述样本的特征。】

#include <stdio.h>

#define DIMENSION 10

void addVectors(int vector1[], int vector2[], int result[]) {
    int i;

    for(i = 0; i < DIMENSION; i++) {
        result[i] = vector1[i] + vector2[i];
    }
}

int main() {
    int vector1[DIMENSION] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int vector2[DIMENSION] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
    int result[DIMENSION];
    int i;

    // 计算两个向量的和
    addVectors(vector1, vector2, result);

    // 打印结果
    for(i = 0; i < DIMENSION; i++) {
        printf("%d ", result[i]);
    }
    printf("\n");

    return 0;
}

例题拓展:两个矩阵相加

#include <stdio.h>
 
int main(){
    int r, c, a[100][100], b[100][100], sum[100][100], i, j;
 
    printf("输入行数 ( 1 ~ 100): ");
    scanf("%d", &r);
    printf("输入列数 ( 1 ~ 100): ");
    scanf("%d", &c);
 
    printf("\n输入第一维数组的元素:\n");
 
    for(i=0; i<r; ++i)
        for(j=0; j<c; ++j)
        {
            printf("输入元素 a%d%d: ",i+1,j+1);
            scanf("%d",&a[i][j]);
        }
 
    printf("输入第二维数组的元素:\n");
    for(i=0; i<r; ++i)
        for(j=0; j<c; ++j)
        {
            printf("输入元素 a%d%d: ",i+1, j+1);
            scanf("%d", &b[i][j]);
        }
 
    // 相加
 
    for(i=0;i<r;++i)
        for(j=0;j<c;++j)
        {
            sum[i][j]=a[i][j]+b[i][j];
        }
 
    // 显示结果
    printf("\n二维数组相加结果: \n\n");
 
    for(i=0;i<r;++i)
        for(j=0;j<c;++j)
        {
 
            printf("%d   ",sum[i][j]);
 
            if(j==c-1)
            {
                printf("\n\n");
            }
        }
    
    return 0;
}

5.编写一个程序,统计输入字符串中大写字母、小写字母、数字、其他符号的个数。

#include <stdio.h>
#include <ctype.h>

int main() {
    char input[100];
    int upper_count = 0, lower_count = 0, digit_count = 0, symbol_count = 0;
    int i;

    printf("请输入一个字符串:");
    fgets(input, sizeof(input), stdin);

    for (i = 0; input[i] != '\0'; i++) {
        if (isupper(input[i])) {
            upper_count++;
        } else if (islower(input[i])) {
            lower_count++;
        } else if (isdigit(input[i])) {
            digit_count++;
        } else {
            symbol_count++;
        }
    }

    printf("大写字母个数:%d\n", upper_count);
    printf("小写字母个数:%d\n", lower_count);
    printf("数字个数:%d\n", digit_count);
    printf("其他符号个数:%d\n", symbol_count-1);

    return 0;
}

C语言小案例_i++_02


标签:count,int,C语言,案例,result,printf,input,100
From: https://blog.51cto.com/u_16174658/8180732

相关文章

  • JavaScript Array对象(属性、方法) 留言板案例
    一、创建数组对象的方式vararrOb=newArray(值,........)vararrOb=Array(值,.......)vararrOb=[值,.........]vararrOb=newArray(n);arrOb[0]=值1;arrOb[1]=值2;二、数组的属性length   //数组中元素的数目vararr=['云南','九寨沟','拉萨','西双版纳','......
  • B站C语言第十课
    1,函数#include<stdio.h>#include<string.h>#include<stdlib.h>//intAdd(intx,inty){ intz=0; z=x+y; returnz;}intmain(){ inta=10; intb=20; intsum=Add(a,b); printf("%d\n",sum); return0;}2,牢记......
  • 贪心算法(C语言)
    一、会议安排问题1.1问题(1)对于每个会议i,起始时间bi和结束时间ei,且bi<ei(2)[bi,ei]与[bj,ej]不相交,则会议i和会议j相容,bi≥ej或bj≥ei(3)目标:在有限的时间内,尽可能多地安排会议1.2分析选择最早结束的会议1.3实现(1)初始化:按结束时间递增排序(2)选中第一......
  • C语言笔记3
    关键字1.C语言预先规定的,具有特定意义的字母组合(32个)。2.保留给语言本身使用,也称为保留字。标识符定义:为程序的构成成分命名。变量变量是程序执行期间其值可以改变的量,必须先定义后使用。变量定义本格式类型说明符变量名1变量名2...如inta,b,c;floatx;功能:指定......
  • 实验3—C语言函数应用编程
    1、实验任务1源代码1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#include<windows.h>5#defineN806voidprint_text(intline,intcol,chartext[]);//函数声明7voidprint_spaces(intn);//函数声明8voidprint_b......
  • C语言 循环队列
    什么是队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。什么是循环队列在实际使用队列时,为了使队列空间能重复使用,往往对......
  • 服务器数据恢复—Zfs文件系统下文件被误删除的服务器数据恢复案例
    服务器故障:一台zfs文件系统服务器,管理员误操作删除服务器上的数据。服务器数据恢复过程:1、将故障服务器所有磁盘编号后取出,硬件工程师检测所有硬盘后没有发现有磁盘存在硬件故障。以只读方式将全部磁盘做扇区级别的镜像备份,备份完成后按照编号将磁盘还原到原服务器中,后续的数据......
  • C语言基础之基础的输入输出
    前言学一门编程语言,不能编写让用户输入数据然后输出处理后的数据的程序那么就等于没学,而在C语言中可以用printf()和scanf()函数进行输入和输出操作。这两个函数是内置的库函数,定义在stdio.h(头文件)中。printf()函数printf()函数用于输出操作。它将给定的语句打印到控制台......
  • C语言基础之第一个C程序
    前言在开始学习C语言的基础知识之前,我们需要学习如何编写、编译和运行第一个C程序。要编写第一个C程序,打开C控制台并编写以下代码,我这里直接使用vs2022进行代码的编写:#include<stdio.h>intmain(){ printf("Hello,World!"); return0;}运行效果如下:代码解......
  • Vue+OpenLayers从入门到实战进阶案例汇总目录,兼容OpenLayers7和OpenLayers8
    本篇作为《Vue+OpenLayers入门教程》和《Vue+OpenLayers实战进阶案例》所有文章的二合一汇总目录,方便查找。本专栏源码是由OpenLayers结合Vue框架编写。本专栏从Vue搭建脚手架到如何引入OpenLayers依赖的每一步详细新手教程,再到通过各种入门案例和综合性的实战案例,带领大家快速......