关于几个基础c语言问题的初级做法

一、给定两个整形变量的值,将两个值的内容进行交换

#include<stdio.h>


    int main()
   {

   int a=10;
   int b=20;
   int *p2=&a;
   int *p1=&b;
   int temp;
      temp=*p1;
  *p1=*p2;
  *p2=temp;
    a=*p2;
    b=*p1;
   printf ("a=%d,b=%d",a ,b);
   system("pause");
   return 0;

   }

二、交换两个数的内容不允许创建临时变量,交换两个数的内容

#include<stdio.h>

    int main()

{
int a=10;
int b=20;
 a=a+b;
 b=a-b;
 a=a-b;
  printf("a=%d,b=%d",a,b)
return 0;

}

三、求10 个整数中最大值(方法一的缺点是只能在程序内部修改所需要的比较的数字,不具备灵活特点,方法二更优)

方法一:

#include<stdio.h>
int main()
{
int a[] = { 6 , 4 , 5 , 34 , 232 , 43 , 54 , 6 , 56 , 65},i,max = a[0];
for ( i = 0;i < 10; i++)
{
if(max<a[i])
  max=a[i];
}
printf("最大数是%d\n",max);
system("pause");
    return 0;

}

方法二:

#include<stdio.h>

int main()

{
   int arr[10] ;
   int i = 0;
   int max ;
   printf("请输入10个整数:");
   for (i = 0; i < 10; i++)   
   {
       scanf("%d",&arr[i]);
   }
   max=arr[0];
   for (i = 0; i < 10; i++)
      {
           if(arr[i] > max)  
           max = arr[i];
      }
   printf("max=%d\n", max);
   system("pause");
   return 0;
}

四、将三个数按从大到小输出

#include<stdio.h>
int main()
{
int a,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);
if(a<b)
{b=t;b=a,a=t;}
if(a<c)
{c=t,c=a,a=t;}
if(b<c)
{c=t,b=c,b=t;}
printf("%d,%d,%d",a,b,c);
    return 0;

}

五、求两个数的最大公约数

#include<stdio.h>
     int a,b.temp;
int Division(){
printf("请输入两个数(a,b):\n");
scanf("%d,%d",&a,&b);
     if(a<b)
{
   temp=a;
   a=b;
   b=temp;
}
while(a%b!=0)
{
  temp=a%b;
  a=b;
  b=temp;
}
printf("最大公约数=%d\n",b);
system("pause");

     return 0;
 }

猜你喜欢

转载自blog.csdn.net/Addisons/article/details/79597310