c基础部分几则经典程序合集

1.输出100-200之间所有的素数;

2.打印九九乘法表;

3.冒泡排序——一维数组;

4.冒泡排序——二维数组;

1.输出100-200之间所有的素数;

1.1)提示:素数又叫质数。素数,指的是“大于1的整数中,只能被1和这个数本身整除的数”。

1.2)思路:

        1.2.1)循环100-200,设为i;

        1.2.2)每一趟使用2~(i/2)跟i取余,若能除得尽,说明不是素数,跳出循环,丢弃这个i;

        1.2.3)若不能除得尽,则代表肯定是素数,此时输出该数字。

        1.2.4)每一趟里面的被除数j,是全局变量,因此要在一开始就声明。否则在(i/2)循环中,跳出循环 j 就没有用了。

   #include <stdio.h>
   
  int main(){
      int j;
      for(int i=100;i<=200;i++){
          for(j=2;j<=i/2;j++){
              if(i%j==0){
                  break;
              }
          }
  
          if(j>i/2){
              printf("%d ",i);
          }
      }
      printf("\n");
      return 0;
  }

2.打印九九乘法表

1.1)提示:

 1.2)思路:

        1.2.1)循环9行,即右因数i;

        1.2.2)循环i次,即左因数;

        1.2.3)输出乘法算式,即可

   #include <stdio.h>
   
   int main(){
      int i,j;
      for(int i=1;i<=9;i++){
          for(int j=1;j<=i;j++){
              printf("%d*%d=%d,",j,i,j*i);
          }
          printf("\n");
      }
      return 0;
  }
           


3.冒泡排序——一维数组;

3.1)题目:输入10个整数,用冒泡排序法进行排序。输出排序结果。

#include <stdio.h>
#define Max 10

int main(){
    int arr[Max], tmp;
    printf("请输入10个数:\n  ");
    for(int i=0; i<Max; i++){
        scanf("%d", &arr[i]);
    }

    // 1. 从数组中找出最大的元素(设置第一个元素为最大的元素)
    for(int i=0; i<Max-1; i++){    //循环9趟;
        for(int j=0; j<Max-1-i; j++){    //每一趟进行9-i次比较;
            if(arr[j] > arr[j+1]){      //如果左边大于右边,则进行值交换;
                tmp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = tmp;
            }
        }
    }

    printf("排序完成: ");
    for(int i=0; i<Max; i++){
        printf("%d  ", arr[i]);
    }
    printf("\n");

    return 0;
}

4.冒泡排序——二维数组;

4.1)题目:自定义一个3行4列二维数组,用冒泡排序法求出最大值,输出下标及最大值;

#include <stdio.h>
#define row 3
#define col 4

int main(){
    int arr[row][col] = {1,4,7,2,5,8,3,6,9,11,10,0};
    int nMax = arr[0][0];    //假设最大值是数组的第一个数;
    int x, y;
    for(int i=0; i<row;i++){
        for(int j=0; j<col; j++){
            if(nMax <= arr[i][j]){    //如果数组元素比最大值大;
                nMax = arr[i][j];  //则将数组元素赋值给最大值(全局变量)。
                
                x = i;        //i,j的值跳不出循环,
                y = j;        //需将i,j的值赋值给全局变量x,y。
            }
        }
    }
    printf("最大值为: arr[%d][%d] = %d\n", x, y, nMax);

    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值