C 语言的一些经典题目

1.求两个数的最大值


#include <stdio.h>
#include <stdlib.h>
main()
{
      int a,b,c;
      int max(int x,int y);
      printf("请输入要比较的两个数 !\n");
      scanf("%d %d",&a,&b); 
      c=max(a,b);
      printf("要比较的两个数的最大值是:%d\n",c);
      system("pause");
}

int max(int x,int y)
{
int z;
z=x>y?x:y;
}

2.交换两个数的值


#include <stdio.h>
#include <stdlib.h>
main()
{
      int *a,*b;
      int swap(int *x,int *y);
      printf("请输入要交换的两个数 !\n");
      scanf("%d %d",&a,&b); 
      printf("交换前的两个数为:%d %d\n",a,b);
      swap(&a,&b);
      printf("交换后的两个数为:%d %d\n",a,b);
      system("pause");
}

int swap(int *x,int *y)
{
int tmp;
tmp=*x;
*x=*y;
*y=tmp;


}
3.利用冒泡排序算法实现排序的功能


#include <stdio.h>
#include <stdlib.h>
#define MAX 10
//利用冒泡排序法实现排序的功能 

int a[MAX]; 

main()
{
      int i;
      int  sort();
      printf("请输入要利用冒泡排序法进行排序的数\n");
      for(i=0;i<MAX;i++)
         {
          scanf("%d",&a[i]);                  
         } 
      printf("利用冒泡排序法进行排序前的数\n"); 
      for(i=0;i<MAX;i++)
       {
         printf("%4d",a[i]);
       } 
     printf("\n");
      //调用冒泡排序函数 
      sort(); 
     printf("利用冒泡排序法进行排序后的数\n");
     for(i=0;i<MAX;i++)
     {
     printf("%4d",a[i]);
     }
      system("pause");
      
}

int sort()
 {
     int i,j,tmp;
     for(i=0;i<=MAX-2;i++)
     {
       for(j=0;j<MAX-i-1;j++)
       if(a[j]>a[j+1])
       {
         tmp=a[j];
         a[j]=a[j+1];
         a[j+1]=tmp;
                      
       }                   
       
     }
     
 }

4.利用选择排序的方法进行排序的实现


#include <stdio.h>
#include <stdlib.h>
#define MAX 10
//利用选择排序法实现排序的功能 

int a[MAX]; 

main()
{
      int i;
      int  selectsort();
      printf("请输入要利用选择排序法进行排序的数\n");
      for(i=0;i<MAX;i++)
         {
          scanf("%d",&a[i]);                  
         } 
      printf("利用选择排序法进行排序前的数\n"); 
      for(i=0;i<MAX;i++)
       {
         printf("%4d",a[i]);
       } 
     printf("\n");
      //调用选择排序函数 
      selectsort(); 
     printf("利用选择排序法进行排序后的数\n");
     for(i=0;i<MAX;i++)
     {
     printf("%4d",a[i]);
     }
      system("pause");
      
}

int selectsort()
 {
     int i,j,tmp,p;
     for(i=0;i<MAX-1;i++)
     {
        p=i;
       for(j=i+1;j<MAX;j++)
       if(a[j]<a[p])
       p=j;
       if(p!=i)
       {
         tmp=a[p];
         a[p]=a[i];
         a[i]=tmp;
                      
       }                   
       
     }
     
 }


5.随机数加减法的问题

效果如图:


#include <stdlib.h>
#include <stdio.h>
#include <time.h>//使用当前时钟做种子
void main( void )
{
int i,j,k,m,n;
int add(int x,int y);
int sub(int x,int y);
int mul(int x,int y);
int divis(int x,int y);
srand((int)time(0));
loop:
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
k=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf("产生的随机数j=%d\tk=%d\n",j,k);  
printf("请输入你想进行的操作:1、加法运算   2、减法运算  3.乘法运算   4、除法运算\n");
scanf("%d",&m);

switch(m)
{
case 1:
     
     printf("两个数的和是:");
     add(j,k);
      break;
case 2: 
     printf("两个数的差是:");
     if(j>k)
     {
     sub(j,k);
      }else{
              printf("减数小于被减数--Divide Overflow\n");
              }
       
      break;
        case 3:
     
     printf("两个数的积是:");
     mul(j,k);
      break;
      case 4:
     
     printf("两个数的商是:");
     divis(j,k);
      break;
default:         
   
   printf("运算出错,出现异常!!");  

 break;

}
printf("你想继续进行操作么?1,继续 2、退出");
scanf("%d",&i);
switch(i)
{
case 1:
     goto loop; 
     break;
case 2:
     printf("成功退出!!");         
         
}
system("pause");

}  
   
int add(int x,int y){
 
      int z;
      z=x+y;
      printf("%d\n",z);
      return 0;
      } 
 int sub(int x,int y){
 
      int z;
      z=x-y;
      printf("%d\n",z);
      return 0;
      } 
int mul(int x,int y){
    
     int z;
      z=x*y;
      printf("%d\n",z);
      return 0;
    
    } 
int divis(int x,int y){
    
     int z;
      z=x/y;
      printf("%d\n",z);
      return 0;
    
    
    } 


6.求N的阶乘的方法

运行结果:

#include<stdio.h>
int main()
{ 
    int result=1,num;
    printf("请输入要求的阶乘数\n");
    scanf("%d",&num);
    for(int i=1;i<=num;i++)
       {
          result=result*i; 
       }
    printf("%d的阶乘是%d",num,result);
    }



 

posted @   程序员Android的博客  阅读(97)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示