【无标题】作业加更

打印杨辉三角

#include<stdio.h>
int main()
{
    int arr[11][11];
    int n=0;
    arr[0][0]=0;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        for(int k=0;k<n-i-1;k++)
        {
            printf(" ");
        }
        for(int j=0;j<=i;j++)
        {
            if(i==j)
            {
                arr[i][j]=1;
            }
            else if(j==0)
            {
                arr[i][j]=1;
            }
            else
            {
                arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
            }
            printf("%4d",arr[i][j]);
            if(i==j)
            {
                printf("\n");
            }
        }
    }
    return 0;
}

2

int main()
{
    int arr[10][10] = { 0 };
    int i = 0;
    for (i=0;i<10;i++)
    {
        arr[i][0] = 1;
        int j = 0;
        for (j = 0; j < i + 1; j++)
        {
            if (i == j)
            {
                arr[i][j] = 1;
            }
            if (i > 1 && j > 0)
            {
                arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
            }
            printf("%d ",arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

将给定的n个整数从小到大排序后输出(选择法、冒泡法)。

#include <stdio.h>
int main()
{    
int x,a[10],b[10],i;
scanf("%d",&x);
for(i=0;i<x;i++)
{      
 scanf("%d",&a[i]);
 }   
  for(i=0;i<x;i++)
 {        
   b[x-1-i]=a[i];
 }   
   for(i=0;i<x;i++)
  {       
        a[i]=b[i];
  }  
         for(i=0;i<x;i++)
   {       
         if(i==0) 
         printf("%d",a[i]);
         else
         printf(" %d",a[i]);
      }    
    return 0;
    }

本题要求将给定的n个整数从大到小排序后输出

#include<stdio.h>
int main()
{
    int i, j, n, tmp;
    scanf( "%d", &n );
    int a[n];
    
    for( i = 0; i < n; i++ )
        scanf( "%d", &a[i] );
    
    for( i = 0; i < n - 1; i++ )
    {
        for( j = i + 1; j < n; j++ )
        {
            if( a[i] < a[j] )
            {
                tmp = a[i];
                a[i] = a[j];
                a[j] = tmp;
            }    
        }
    }
    
    printf( "%d", a[0] );
    
    for( i = 1; i < n; i++ )
        printf( " %d", a[i] );
    
    printf( "\n" );
    
    return 0;
}

打印九九口诀表

#include<stdio.h>
int main(void)
{
    int n;
    int i,j;
    scanf("%d",&n);
    for( i=1;i<=n;i++)
    {
        for(j=1;j<=i;j++)
        {
            printf("%d*%d=%-4d",j,i,j*i);
 
        }
        if(i!=n)
        printf("\n");
    }
    return 0;
}

编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和

#include<stdio.h>
int main()
{
    int a=0,n=0,sum=0;
    scanf("%d %d",&a,&n);
    int i,t;
    t=a;
    for(i=1;i<=n;i++)
    {
        sum+=a;
        a=a*10+t;
    }
    printf("s = %d",sum);
    return 0;
}


2

#include<stdio.h>
#include<math.h>
int main()
{
    int n,a,i,j;
    double num=0,sum=0;
    scanf("%d %d",&a,&n);
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=i;j++)
        {
            num=num+a*pow(10,j-1);
        }
        sum=sum+num;
        num=0;
    }
    printf("s = %.0f",sum);
    return 0;
}

找出三位水仙花数

#include<stdio.h>
#include<math.h>
int main(void)
{
    int M,N,q,w;
    int g,s,b;
    scanf("%d%d",&M,&N);
    q=M;
    w=N;
        if(M<=N&&M>=100&&N>=100&&N<=999)
        {
            for(q;q<=w;q++)
            {
                g=q%10;
                s=q%100/10;
                b=q/100;
                if(q==pow(g,3)+pow(s,3)+pow(b,3))
                {
                    printf("%d\n",q);
                }
            }
        }
        else
        { 
            printf("Invalid Value.");
        }
        return 0;
}

判断一个三位数是否为水仙花数

#include <stdio.h>
void main()
{
    int a, b,c,n;
    scanf ("%d",&n);
    a=n%10;
    b=n/10%10;
    c=n/100;
        if(n>=100 && n<=999 && n==a*a*a+b*b*b+c*c*c)
            printf ("Yes\n");
        if(n>=100 && n<=999 && n!=a*a*a+b*b*b+c*c*c)
            printf("No\n");
        if(n<100||n>999)
            printf("Invalid Value.\n");
    return 0;
}

实现一个计算m到n之间所有整数的和的简单函数

#include <stdio.h>
 
int sum(int m, int n);
 
int main()
{    
    int m, n;
 
    scanf("%d %d", &m, &n);
    printf("sum = %d\n", sum(m, n));
 
    return 0;
}
 
/* 你的代码将被嵌在这里 */

int sum( int m, int n ){
    int i, sum=0;
    for(i=m;i<=n;i++){
        sum+=i;
    }
    return sum;
}

实现一个计算 n!的函数

#include<stdio.h>
long factorial(int);//声明函数factorial() 
int main(){
    int n;
    long y;
    printf("Input a integer number:");
    scanf("%d",&n);
    y=factorial(n);//调用函数factorial() 
    printf("%d!=%ld",n,y);

long factorial(int n){//定义函数factorial(),采用递归方法实现 
    if(n==0||n==1) return 1;
    else return factorial(n-1)*n;//factorial()函数体中又调用factorial()函数本身 
}

实现一个计算两个数的最大公约数的简单函数


#include<stdio.h>
//P35 求两个数的最大公约数
 
int main() {
    int m ,n,tmp;
    scanf("%d,%d", & m, &n);
    if (m > n) {//求两者中的较小值
        tmp = n;
    }
    else {
        tmp = m;
    }
    int i = 0;
    for (i = tmp; i > 0; i--) {
        if (m % i == 0 && n % i == 0) {
            printf("最大公约数为:%d", i);
            break;
        }
    }
    return 0;
}

对顺序读入的n个整数,顺次计算后项减前项之差,并按每行4个元素的格式输出结果

int main()
{
    int i, j, n;
    int arr[100];
    scanf("%d", &n);
    for (i = 0;i < n;i++)
    {
        scanf("%d", &arr[i]);
    }
    for (i = 1;i < n;i++)
    {
        if (i == 4 || i == 1||i==7)
        {
            printf("%d", arr[i] - arr[i - 1]);
        }
        else {
            printf(" %d", arr[i] - arr[i - 1]);
            if (i % 3 == 0)
                printf("\n");
        }
    }
    return 0;
}

顺序查找

//C版本
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define ARR_SIZE 10
 
int linear_search(const int *arr, const int n, const int val)
{
    for (int i = 0; i < n; i++)
    {
        if (arr[i] == val)
            return i;
    }
 
    return -1;
}
 
int main(int argc, char *argv[])
{
    srand(time(NULL));
 
    int arr[ARR_SIZE] = {0};
    int val = rand()%10 + 1;
    int index = -1;
 
    printf("arr = ");
    for (int i = 0; i < ARR_SIZE; i++)
    {
        arr[i] = rand()%10 + 1;
        printf("%d ", arr[i]);
    }
    printf("\n");
 
    printf("search val = %d\n", val);
    index = linear_search(arr, ARR_SIZE, val);
    printf("index = %d\n", index);
 
    return 0;
}

2

int Find(int a[],int x)
{
    int index = -1;
    for(int i=0;i<(sizeof(a)/sizeof(a[0]));i++)
    {
        if(a[i]==x)
        {
            index = i;
            break;
        }
    }
    return index;
}

二分查找

#include <stdio.h>
#include <stdlib.h>
 
// 自定义二分查找函数
int my_bsearch(int target, int arr[], int len)
{
    int left = 0;          // 左边界
    int right = len - 1;   // 右边界
    int mid;               // 中间位置
 
    while (left <= right)
    {
        mid = (left + right) / 2;  // 计算中间位置
 
        if (arr[mid] == target)   // 如果中间值等于目标值
        {
            return mid;            // 返回中间索引
        }
        
        if (arr[mid] > target)    // 如果中间值大于目标值
        {
            right = mid - 1;       // 将右边界缩小为中间索引减一
        }
        else if (arr[mid] < target)  // 如果中间值小于目标值
        {
            left = mid + 1;          // 将左边界增大为中间索引加一
        }
    }
 
    return -1;  // 未找到目标值,返回 -1
}
 
int main()
{
    int arr[] = { 4, 9, 13, 19, 26, 45, 71 };
    int len = sizeof(arr) / sizeof(int);  // 计算数组长度
 
    int num = 26;  // 要查找的目标值
 
    int index = my_bsearch(num, arr, len);  // 调用自定义二分查找函数
 
    printf("index = %d\n", index);  // 打印结果索引
 
    return 0;
}

2

//递归二分查找
int BiSearch(int data,int *p,int min,int max)
{
    int mid = (min + max)/2;
    if(data < p[min]||data >p[max])
        return -1;
    else if(data == p[mid])
        return mid;
    else if(data > p[mid])
        BiSearch(data,p,mid+1,max);//mid已经判断过,所以要排除
    else if(data < p[mid])
        BiSearch(data,p,min,mid-1);
}

 将一个字符串中的非数字字符删除,构成一个新字符串。然后将该字符串中的数字字符转成一个十进制整数,之后输出。例:原字符串为 a1b23c4def,则新字符串为 1234,转成整数后是整数 1234.

#include<stdio.h>
void main(){
    char st[80];
    int i,j=0;
    gets(st);
    for(i=0;st[i];i++){
        if(st[i]>='0'&&st[i]<='9'){
            st[j++]=st[i];
        }
    }
    st[j]='\0';//有串必有'\0' 
    puts(st);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值