C语言练习题一

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

//求n!
//int main()
//{
//	int i = 0;
//	int j = 0;
//	int ret=1;
//	scanf("%d",&j);
//	for(i=1;i<=j;i++)
//	{
//		ret=ret*i;
//	}
//	printf("%d",ret);
//	return 0;
//}

//求1!+2!+.....+n!
//int main()
//{	
//	int i = 0;
//	int j = 0;
//	int ret=1;
//	int sum=0;
//	scanf("%d",&j);
//	for(i=1;i<=j;i++)
//	{
//		ret=ret*i;
//		sum=sum+ret;
//	}
//	printf("%d",sum);
//return 0;
//}





//int main()
//{
//	int n = 1;
//	int m = 2;
//	switch(n)
//	{
//	case 1:
//		m++;
//	case 2:
//		n++;
//	case 3:
//		switch(n)
//		{
//		case 1:
//			n++;
//		case 2:
//			m++;
//			n++;
//			break;
//		}
//	case 4:
//		m++;
//		break;
//	default:
//		break;
//	}
//	printf("n=%d,m=%d",n,m);
//return 0;
//}



 二分函数查找有序数组元素
//int BinarySearch(int arr[],int key,int left,int right)
//{
//	while(left<=right)
//	{
//		int mid=left+(right-left)/2;
//		if(arr[mid]==key)
//		{
//			return mid;
//		}
//		else if(arr[mid]>key)
//		{
//			right=mid-1;
//		}
//		else 
//		{
//			left=mid+1;
//		}
//		
//	}
//	return -1;
//}
//
//
//int main()
//
//{
//	int arr[]={1,2,3,4,5,6,7,8,9,10};
//	int key = 9;
//	int sz = sizeof(arr)/sizeof(arr[0]); 
// 	int  ret= BinarySearch (arr,key,3,7);
//	if(-1==ret)
//	{
//		printf("找不到\n");
//	}
//	else
//	{
//		printf("找到了:%d\n",ret);
//	}
//	return 0;
//}





//猜数字游戏
//#include<string.h>
//#include<windows.h>
//#include<time.h>
//
//
//enum Option
//{
//	EXIT,
//	START
//};
//
//void menu()
//{
//	printf("*************************\n");
//	printf("*** 1.play     0.exit ***\n");
//	printf("*************************\n");
//	
//}
//
//void game()
//{
//	int ret=0;
//	int num=0;
//	ret = rand()%100+1;
//	while(1)
//	{
//		printf("请猜数字; ");
//		scanf("%d",&num);
//		if(num == ret)
//		{
//			printf("恭喜你,猜对了\n");
//			break;
//		}
//		else if(num>ret)
//		{
//			printf("猜大了\n");
//		}
//		else
//		{
//			printf("猜小了\n");
//		}
//	}
//}
//
//
//int main()
//{
//	int input=0;
//	srand((unsigned int)time(NULL));
//	do
//	{
//		menu();
//		printf("请选择: ");
//		scanf("%d",&input);
//		switch(input)
//		{
//		case 1:
//			game();
//			break;
//		case 0:
//			break;
//		default:
//			printf("选择错误\n");
//			break;
//		}
//	}
//	while (input);
//	
//return 0;
//}




模拟用户登录密码情景
//#include<string.h>
//int main()
//
//{	
//	int i=0;
//	char passwd[10]={0};
//	for(i=0;i<3;i++)
//	{
//		printf("请输入密码:");
//		scanf("%s",passwd); 
//		if(0==strcmp(passwd,"123456"))
//		{
//			printf("登陆成功\n");
//			break;
//		}
//		
//		else
//		{
//			printf("密码错误\n");			
//		}
//	}
//	if(i==3)
//	{
//		printf("退出系统\n");
//	}  
//return 0;	
//}



从俩边向中间打印
//#include<windows.h>
//int main()
//{
//	char arr1[]="######################";
//	char arr2[]="welcome  to  bit ! ! !";
//	int left=0;
//	//int right1=sizeof(arr1)/sizeof(arr1[0])-1;
//	//int right2=sizeof(arr1)/sizeof(arr1[0])-2;
//	int right3=strlen(arr1)-1;
//	//printf("%d,%d,%d",right1,right2,right3);

//    while(left<=right)
//	{
//		arr1[left]=arr2[left];
//		arr1[right]=arr2[right];
//		printf("%s\n",arr1);
//		left++;
//		right--;
//		Sleep(1000);
//		//system("cls");
//	}
//	return 0;
//}

出现死循环
//int main()
//{
//	int i = 0;
//	int arr[10] = {0};
//	for(i=0;i<=12;i++)   //i的地址和arr[12]的地址是一样的
//	{
//		arr[i] = 0;
//		printf("hehe\n");
//	}
//	return 0;
//}



接受一个整型值(无符号),把它转换为字符并打印它
例如  输入1234  输出1 2 3 4
 
//void Print(int num)
//{
//	if(num>9)
//	{
//		Print(num/10);
//	}
//	printf("%d ",num%10);
//	//return  num%10 ;  不能用return  无输出
//}
//
//int main() 
//{
//	int num = 1234;
//	Print(num);
//	return 0;
//}


编写函数不允许创建临时变量,求字符串长度
//#include<assert.h>
//int my_strlen(const char *str)
//{
//	//int count = 0;
//
//	assert(str != NULL);
//
//	//while(*str != '\0')
//	//{
//	//	count++;
//	//	*str++;
//	//}
//
// 
//	if(*str != '\0')						
//	{	
//										 //str++;
//		return 1+my_strlen(str+1);       //return 1+my_strlen(str);
//	}	
//	else
//		return 0;
//	
//	//return count;
//}
//
//
//int main()
//{
//	char *ch = "abcdefghijklmn  ";     //不能写成char ch = "abcdef";
//	int ret = my_strlen(ch);
//	printf("%d\n",ret);
//	return 0;
//}


//求n的阶乘
//
//int Fun(int n)
//{
//	if(n<=1)        //0的阶乘是1
//	{
//		return 1;
//	}
//	else 
//	{
//		return n*Fun(n-1);
//	}
//}
//
//int main()
//{	
//	int n = 0;
//	int ret = 0;
//	scanf("%d",&n);
//	ret= Fun(n);
//	printf("%d",ret);
//	return 0;
//}




//求第n个斐波那契数(不考虑溢出)
//1 1 2 3 5 8 13 21 34 55 89 ......
//循环方式
int Fbc(int n)
{
	
	int a = 1;
	int b = 1;
	int c = 1;
	while(n>2)
	{	
		n = n-1;
		c = a+b;
		a = b;
		b = c;
	
	}
	return c;
}


递归的方式
//Fbc(int n)
//{
//	
//	if(n<=2)
//		return 1;
//	else
//		return Fbc(n-1)+Fbc(n-2);
//	
//}
//
//int main()
//{
//	int ret = 0;
//	int n = 0;
//	scanf("%d",&n);
//	ret = Fbc(n);
//	printf("%d",ret);
//	return 0;
//}



写一个函数判断计算机是小端还是大端存储

//int check_sys()
//{
//	int i = 1;
//  return (*(char*)&(i)); //返回1为小端返回0为大端
//}


用共用体的做法
//int check_sys()
//{
//	union Un
//	{
//		char a;
//		int i;
//	}u;
//	u.i = 1;
//	return u.a;
//}
//
//
//int main()
//{
//	int ret = check_sys();
//	if(1 == ret)
//		printf("小端\n");
//	else
//		printf("大端\n");
//	return 0;
//}



#define _CRT_SECURE_NO_WARNINGS 1

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




//1000-2000年的闰年
//int main()
//{
// int i=0;
// int count=0;
// for(i=1000;i<=2000;i++)
// {
//  if(i%4==0&&i%100!=0)
//  {
//	  count++;
//      printf("%d\n",i);
//  }
//  if(i%400==0)
//  {
//	  count++;
//	  printf("%d\n",i);
//  }
// }
// printf("%d\n",count);
//return 0;
//}





//打印乘法口诀表

//int main()
//{
//int i;
//int j;
//for(i=1;i<=9;i++)
//{
//  for(j=1;j<=i;j++)
//  {
//	  printf("%2d*%2d=%2d",j,i,j*i);//或者printf("%2d*%2d=%2d",i,j,i*j);
//  } 
//  printf("\n");
//}
//return 0;
//}

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
交换俩个整形变量的值
//int main()
//{
	解法一
	//int a = 10;
	//int b = 20;
	//int c = 0;
	//c = a;
	//a = b;
	//b = c;

	//解法二
	//int a = 34;
	//int b = 26;
    //a = a+b;
	//b = a-b;
	//a = a-b;

	//解法三
	//int a = 97;
	//int b = 25;
	//a = a^b;
	//b = a^b;
	//a = a^b;
	//printf("%d,%d",a,b);
//return 0;
//}



求10 个整数中最大值(可以改变数组的值)
//int main()
//{
//	int arr[] = {-6,-8,-4,-9,-2,-10,-7,2,-1,-5};
//	int max = arr[0];
//	int i = 0;
//	for(i=1;i<10;i++)
//	{
//		if(arr[i]>max)
//		{
//			max = arr[i];
//		}
//	}
//	printf("%d\n",max);
//return 0;
//}




将三个数按从大到小输出  或者 //用函数的方式
//void Swap(int *p1 , int *p2)
//{
//	int tmp =  *p1;
//	    *p1 =  *p2;
//	    *p2 =  tmp;
//}
//int main ()
//{
//	int a = 0;
//	int b = 0;
//	int c = 0;
//	int tmp = 0;
//    scanf("%d %d %d",&a,&b,&c);
//	
//	if(a<b)
//	{
//		Swap (&a,&b);
//		//tmp = a;
//		//a = b;              
//		//b = tmp;
//	}
//	if(a<c)
//	{
//		Swap (&a,&c); 
		//tmp = a;
		//a = c;
		//c = tmp;
//	}
//	if(b<c)
//	{
//		Swap (&b,&c);
//		//tmp = b;
//		//b = c;
//		//c = tmp;
//	}
//	printf("%d,%d,%d\n",a,b,c) ; //(规定了输出a为最大值)
//	return 0;
//}


求2个数的最大公约数
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d%d",&a,&b);
//	while(a%b)
//	{
//		int tmp = a%b;
//		a = b;
//		b = tmp;
//	}
//printf("%d\n",b);
//	return 0;
//}





求两个数的最小公倍数
//
//int main ()
//{
//	int a = 0;
//	int b = 0;
//	int c = 0;
//	int d = 0;
//	int tmp = 0;
//	scanf("%d%d",&a,&b);
//	c = a;
//	d = b;
//	//先求最大公约数
//	while(c%d)
//	{
//		//if(c%d != 0)     //(不需要判断) while(c%d)和if(c%d != 0)是一个意思
//		//{
//			tmp = c%d;
//			c = d;
//			d = tmp;
//		//}	
//	}
//	//求最小公倍数
//	a = a*b/d;
//	printf("%d",a);
//return 0;
//}
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>



将数组A中的内容和数组B中的内容进行交换 
//int main ()
//{	
//	int arrA[] = {1,2,3,4,5,6,7,8,9,10};
//	int arrB[] = {-1,-2,-3,-4,-5,-6,-7,-8,-9,-10};
//	int tmp = 0;
//	int i = 0;
//  int sz = sizeof(arrA)/sizeof(arrA[0]);
//	for(i=0;i<10;i++)     //for(i=0;i<sz;i++)
//	{
//		tmp = arrA[i];
//		arrA[i] = arrB[i];
//		arrB[i] = tmp;
//	}
//    for(i=0;i<10;i++)    //for(i=0;i<sz;i++)
//	{
//		printf("%d\n",arrA[i]);
//	}
//	printf("\n");
//	for(i=0;i<10;i++)      //for(i=0;i<sz;i++)
//	{
//		printf("%d\n",arrB[i]);
//	}
//	
//	return 0;
//}



计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值

//int main()
//{
//	int i = 0;
//	double sum = 0.0;
//	int flag = -1;
//	for(i=1;i<=100;i++)
//	{
//		sum = sum+flag*1.0/i;
//		flag = -flag;
//	}
//	printf("%lf",sum);
//return 0;
//}

数一下 1到 100 的所有整数中出现多少次数字9

//int main()
//{
//	int i = 0;
//	int count = 0;
//	for(i=1;i<=100;i++)
//	{
//		if(i%10==9)
//		{
//			count++;
//		}
//		if(i/10==9)
//		{
//			count++;
//		}
//	}
//	printf("%d\n",count);
//return 0;
//}

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

在屏幕上输出以下图案:
      *
     ***
    *****
   *******
  *********
 ***********
*************
 ***********
  *********
   *******
    *****
     ***
      *

//int main()
//{
//	int i = 0;
//	int line = 0;
//	int j = 0;
//	scanf("%d",&line);
//
//	//先打印上半部分
//	for(i=0;i<line;i++)
//	{
//		//先打印空格
//		for(j=0;j<line-1-i;j++)  //(难点)
//		{
//			printf(" ");// 或者 printf("%c",' ');
//		}
//		//打印*
//		for(j=0;j<2*i+1;j++)  //(难点)
//		{
//			printf("*");
//		}
//		printf("\n");
//	}
//	
//	
//	//打印下半部分
//	for(i=0;i<line-1;i++)
//	{
//		//先打印空格
//		for(j=0;j<=i;j++)   //(难点)
//		{
//			printf(" ");
//		}
//		//打印*
//		for(j=0;j<(line-1-i)*2-1;j++)  //(难点)
//		{
//			printf("*");
//		}
//		printf("\n");
//	}
//return 0;
//}

(创建4个数组)
//#include<string.h>
//#include<windows.h>
//int main()
//{
//	
//	char arr1[]="*************";
//    char arr2[]="             ";
//	int left1=0;
//	int right1=strlen(arr1)-1;
//	int left2=6;
//	int right2=6;
//	char arr3[]="*************";
//	char arr4[]="             ";
//	while((left2>=0)&&(right2<=12))
//	{
//		arr2[left2]=arr1[left2];
//		arr2[right2]=arr1[right2];
//		printf("%s\n",arr2);
//		left2--;
//		right2++;
//        Sleep(1000);
//	}
//	while(left1<=right1)
//		{
//		arr3[left1]=arr4[left1];
//		arr3[right1]=arr4[right1];
//		printf("%s\n",arr3);
//		left1++;
//		right1--;
//		Sleep(1000);
//	    }
//return 0;
//}

(创建2个数组)
//#include<string.h>
//#include<windows.h>
//int main()
//{
//	
//	char arr1[]="*************";
//    char arr2[]="             ";
//	int left1=0;
//	int right1=strlen(arr1)-1;
//	int left2=6;
//	int right2=6;
//	while((left2>=0)&&(right2<=12))
//	{
//		arr2[left2]=arr1[left2];
//		arr2[right2]=arr1[right2];
//		printf("%s\n",arr2);
//		left2--;
//		right2++;
//        //Sleep(1000);
//	}
//    
//	while(left1<=right1)
//		{
//		char arr2[]="             ";
//		arr1[left1]=arr2[left1];
//		arr1[right1]=arr2[right1];
//		printf("%s\n",arr1);
//		left1++;
//		right1--;
//		//Sleep(1000);
//	    }
//return 0;
//}





打印水仙花数
//#include<math.h>
//int main()
//{
//	int i = 0;
//	int bit = 1;
//	for(i=0;i<1000;i++)
//	{
//		//计算是几位数
//	    //scanf("%d",&i);
//		int tmp = i;
//		int sum = 0;
//		bit = 1;      这一句很重要(每一个数进来要将bit置1) 
//		while(tmp/10)
//		{
//			bit++;
//			tmp = tmp/10;
//	     }
//         //printf("%d",bit);
//		取下每一位
//		 tmp = i;
//	     while(tmp)   //不能是(tmp%10),会将370 ,407 这样有零的数字丢失
//		 {
//			sum = sum + pow(tmp%10,bit);
//			tmp = tmp /10;
//		 }
//		 if(sum == i)
//		 {
//			printf(" %d ", i );
//		 }
//
//     }
//	return 0;
//}



求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和
//int main()
//{
//	
//	int i = 0;
//	int a = 0;
//	int sn = 0;
//	int ret = 0;
//	int tmp = 0;
//
//	scanf("%d%d",&a,&tmp);
//	for(i=0;i<tmp;i++)
//	{	
//		ret = ret*10+a;
//		sn = sn+ret;
//	}
//printf("%d",sn);
//return 0;
//}


编写程序从标准输入读取C源代码,并验证所有的花括号都正确的成对出现

//int main()
//{
//	char ch = 0;
//	int count = 0;
//	
//	while((ch=getchar()) != EOF)
//	{
//		//putchar(ch);
//		if(ch == '{')
//		{
//			count++;
//		}
//		else if((ch == '}') && (0 == count))
//		{
//			printf("不匹配\n");
//			return 0;
//		}
//		else if((ch == '}') && (count != 0))
//		{
//			count--;
//		}
//	}
//	if (0 == count)
//	{
//		printf("匹配\n");
//	}
//	else
//	{
//		printf("不匹配\n");
//	}
//
//return 0;
//}
#define _CRT_SECURE_NO_WARNINGS 1

二分函数查找有序数组元素
//int BinarySearch(int arr[],int key,int left,int right)
//{
//	while(left<=right)
//	{
//		int mid=left+(right-left)/2;
//		if(arr[mid]==key)
//		{
//			return mid;
//		}
//		else if(arr[mid]>key)
//		{
//			right=mid-1;
//		}
//		else 
//		{
//			left=mid+1;
//		}
//		
//	}
//	return -1;
//}
//
//
//int main()
//
//{
//	int arr[]={1,2,3,4,5,6,7,8,9,10};
//	int key = 9;
//	int sz = sizeof(arr)/sizeof(arr[0]); 
// 	int  ret= BinarySearch (arr,key,3,7);
//	if(-1==ret)
//	{
//		printf("找不到\n");
//	}
//	else
//	{
//		printf("找到了:%d\n",ret);
//	}
//	return 0;
//}





//猜数字游戏
//#include<string.h>
//#include<windows.h>
//#include<time.h>
//
//
//enum Option
//{
//	EXIT,
//	START
//};
//
//void menu()
//{
//	printf("*************************\n");
//	printf("*** 1.play     0.exit ***\n");
//	printf("*************************\n");
//	
//}
//
//void game()
//{
//	int ret=0;
//	int num=0;
//	ret = rand()%100+1;
//	while(1)
//	{
//		printf("请猜数字; ");
//		scanf("%d",&num);
//		if(num == ret)
//		{
//			printf("恭喜你,猜对了\n");
//			break;
//		}
//		else if(num>ret)
//		{
//			printf("猜大了\n");
//		}
//		else
//		{
//			printf("猜小了\n");
//		}
//	}
//}
//
//
//int main()
//{
//	int input=0;
//	srand((unsigned int)time(NULL));
//	do
//	{
//		menu();
//		printf("请选择: ");
//		scanf("%d",&input);
//		switch(input)
//		{
//		case 1:
//			game();
//			break;
//		case 0:
//			break;
//		default:
//			printf("选择错误\n");
//			break;
//		}
//	}
//	while (input);
//	
//return 0;
//}




模拟用户登录密码情景
//#include<string.h>
//int main()
//
//{	
//	int i=0;
//	char passwd[10]={0};
//	for(i=0;i<3;i++)
//	{
//		printf("请输入密码:");
//		scanf("%s",passwd); 
//		if(0==strcmp(passwd,"123456"))
//		{
//			printf("登陆成功\n");
//			break;
//		}
//		
//		else
//		{
//			printf("密码错误\n");			
//		}
//	}
//	if(i==3)
//	{
//		printf("退出系统\n");
//	}  
//return 0;	
//}



编写一个程序,可以一直接收键盘字符,
如果是小写字符就输出对应的大写字符,
如果接收的是大写字符,就输出对应的小写字符,
如果是数字不输出
//#include<ctype.h>
//int main()
//{
//	int ch = 0;
//	while((ch = getchar()) != EOF)
//	{
//		if((ch>='a')&&(ch<='z'))
//		{
//			putchar(toupper(ch));
//			//putchar(ch-32);
//			//putchar(ch-('a'-'A'));
//		}
//		else if((ch>='A')&&(ch<='Z'))
//		{
//			putchar(tolower(ch));
//			//putchar(ch+32);
//			//putchar(ch+'a'-'A');
//		}
//	}
//return 0;
//}
#define _CRT_SECURE_NO_WARNINGS 1
//#include<stdio.h>

将8个比特为的某一位改为flag
//
//void fun(int i, int step, int flag)
//{
//		int j = 0;
//		for(j = 7;j>=0;j--)
//		{
//			if(j == (8-step+1))
//			{
//				if(((i >> j) & 1) == flag)
//				{
//					printf("%d",(i >> j) & 1);
//				}
//				else
//				{
//					printf("%d",!((i >> j) & 1));
//				}
//			}
//		
//			else
//			{
//				printf("%d",(i >> j) & 1);
//			}
//		}
//}
//
//
//int main()
//{
//	char a = 5;
//	fun(a,5,1);
//	return 0;
//}


写一个函数返回参数二进制中 1 的个数
i大于15和负数  没有输出
解法一
//int main()
//{
//	int i = 0;
//	int count = 0;
//	scanf("%d",&i);
//	while(i)
//	{
//		if(i%2 == 1)
//		{
//			count++;
//			i=i/2;
//		}
//	}
//	printf("%d",count);
//return 0;
//}

解法二
//int main()
//{
//	int num = 0;
//	int i = 0;
//	int count = 0;
//	scanf("%d",&num);
//	for(i=0;i<32;i++)
//	{
//		if(((num>>i) & 1) == 1)
//		{
//			count++;
//		}
//	}
//	printf("%d",count);
//	return 0;
//}

解法三
//int main()
//{
//	int num = 0;
//	int count = 0;
//	scanf("%d",&num);
//	while(num)
//	{
//		count++;
//		num = num & (num-1);
//	}
//	printf("%d",count);
//	return 0;
//}

求一个整数存储在内存中的二进制中1的个数
//int Count(int num)
//{
//	int count = 0;
//	while(num)
//	{
//		count++;
//		num &= (num-1);
//	}
//	return count;
//}
//
//int main()
//{
//	int a = 0;
//	int ret = 0;
//	scanf("%d",&a);  
//	ret = Count(a); 
//	printf("%d\n",ret);
//	return 0;
//}



获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
//int main()
//{
//	int i = 0;
//	int j = 0;
//	int a = 0;
//	scanf("%d",&i);
//	printf("奇数位\n");
//	for(j=0;j<31;j+=2)
//	{	
//		//先打印奇数位	
//		i=i >> j;
//		a=i & 1;
//		printf("%d",a);
//	}
//	  //打印偶数位
//	printf("\n");
//	printf("偶数位\n");
//	for(j=1;j<32;j+=2)
//	{
//		i = i >> j;
//		a = i & 1;
//		printf("%d",a);
//	}
//return 0;
//}




//输出一个整数的每一位
//int main ()
//{
//	int i = 0;
//	int tmp = 0;
//	int bit = 1;
//	scanf("%d",&i);
//
//	// 计算这个数有几位
//	tmp = i;
//	while(tmp/10)
//	{
//		bit++;
//		tmp=tmp/10;	
//	}
//	// 取下每一位的数字
//	while(i%10)
//	{
//		printf("%d\n",i%10);
//		i=i/10;
//	}
//
//return 0;
//}



编程实现:
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?

//int main()
//{
//	int m = 0;
//	int n = 0;
//	int i = 0;
//	int count = 0;
//	scanf("%d%d",&m,&n);
//	m=m^n;
//	for(i=0;i<32;i++)
//	{
//		if(((m>>i) &1 ) == 1)	
//		{
//			count++;
//		}
//	}
//	printf("%d",count);
//return 0;
//}

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>


用函数打印自己可以控制行列的乘法口诀表
//void Mul(int x, int y,int n)
//{
//	for(x=1;x<=n;x++)
//	{
//		for(y=1;y<=x;y++)
//		{
//			printf("%2d*%2d=%2d ",x,y,x*y);  //不要写成 printf("%2d*%2d=%2d",x*y);这样打印的是i*随机值
//		}
//		printf("\n");
//	}
//}
//
//
//int main()
//{
//	int i = 0;
//	int j = 0;
//	int n = 0;
//	scanf("%d",&n);
//	Mul (i,j,n);
//return 0 ;
//}



用函数的方式交换两个数
//void Swap (int *p1, int *p2)
//{
//	int tmp = 0;
//	tmp = *p1;
//	*p1 = *p2;
//	*p2 = tmp;
//	printf("交换a和b:");
//	printf("\n");
//	printf("a=%d\nb=%d",*p1,*p2);
//}
//
//
//int main ()
//{
//	int a = 0;
//	int b = 0;
//	printf("请输入a和b:");
//	printf("\n");
//	scanf("%d%d",&a,&b);
//	Swap(&a,&b);
//
//return 0;
//}


用函数的方式判断是不是闰年
//void Year (int x)
//{
//	if((x%4==0)&&(x%100 != 0)||(x%400==0))
//	{
//		printf("是闰年\n");
//	}
//	else
//	{
//		printf("不是闰年\n");
//	}
//}
//
//
//int main()
//{
//	int i = 0;
//	printf("请输入年份:");
//	scanf("%d",&i);
//	Year (i);
//return 0;
//}


//创建一个数组,
//实现函数init()初始化数组、
//实现empty()清空数组、
//实现reverse()函数完成数组元素的逆置。
//要求:自己设计函数的参数,返回值。
初始化和清空数组
解法一
//void Init(int arr[],int sz)
//{
//	int i = 0;
//	for(i=0;i<sz;i++)
//	{
//		arr[i] = 1;
//	}	
//}
//
//void PrintArr(int arr[],int sz)
//{
//	int i = 0;
//	for(i=0;i<sz;i++)
//	{
//		printf("%d ",arr[i]);
//	}
//	printf("\n");
//}
//
//int main()
//{
//	int arr[10] = {0};
//	int sz = sizeof(arr)/sizeof(arr[0]);
//	Init(arr,sz);
//	PrintArr(arr,sz);
//return 0;
//}

解法二
//#include<string.h>
//memset这个函数只能初始化为0,因为他是一个字节一个字节
//的初始化
//Init(int arr[], int sz)
//{
//	memset(arr,0,sz*sizeof(int));
//}
//
//void PrintArr(int arr[],int sz)
//{
//	int i = 0;
//	for(i=0;i<sz;i++)
//	{
//		printf("%d ",arr[i]);
//	}
//	printf("\n");
//}
//
//int main()
//{
//	int arr[10] ={1};
//	int sz = sizeof(arr)/sizeof(arr[0]);
//	Init(arr,sz);
//	PrintArr(arr,sz);
//return 0;
//}

数组元素的逆置

//void Reverse(int arr[],int sz)
//{
//	int left = 0;
//	int right = sz-1;
//	int tmp = 0;
//	while(left<right)
//	{
//		tmp = arr[left];
//		arr[left] = arr[right];
//		arr[right] = tmp;
//		left++;
//		right--;
//	}
//	
//}
//
//void PrintArr(int arr[],int sz)
//{
//	int i = 0;
//	for(i=0;i<sz;i++)
//	{
//		printf("%d ",arr[i]);
//	}
//	printf("\n");
//}
//
//int main()
//{
//	int arr[10]={0,1,2,3,4,5,6,7,8,9};
//	int sz = sizeof(arr)/sizeof(arr[0]);
//	PrintArr(arr,sz);
//	Reverse(arr,sz);
//	PrintArr(arr,sz);
//return 0;
//}


实现一个函数,判断一个数是不是素数

//#include<math.h>
//Priem(int x)
//{
//	int y = 0;
//	for(y=2;y<=sqrt(x);y++)
//	{
//		if(0 == x%y)
//		{
//			printf("不是素数\n");
//			break;
//		}
//	}
//	if(y>sqrt(x))
//	printf("是素数\n");
//}
//int main()
//{
//	int i = 0;
//	scanf("%d",&i);
//    Priem(i);
//return 0;
//}
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。
现在请根据这些信息,写一个程序来确定到底谁是凶手。

//int main()
//{
//	int killer = 0;
//	for(killer = 'a'; killer<='d'; killer++)
//	{
//		if(3==(killer != 'a')
//			+(killer == 'c')
//			+(killer == 'd')
//			+(killer != 'd'))
//		{
//			printf("%c\n",killer);
//		}
//	}
//return 0;
//}




打印杨辉三角
     // //直角形的
//int main()
//{
//	int arr[10][10]={0};
//	int i = 0;
//	int j = 0;
//	int sz = 10; 
//
//	for(i=0;i<sz;i++)
//	{
//
//		for(j=0;j<sz;j++)
//		{
//			//打印斜列
//			if(0==j)
//			{
//				arr[i][j] = 1;
//			}
//			if(i==j)
//			{
//				arr[i][j] = 1;
//			}
//			//打印中间
//			if((i>1)&&(j>0))
//			{
//				arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
//			}
//		}
//	}
//    
//	for(i=0;i<sz;i++)
//	{
//		for(j=0;j<=i;j++)
//		{
//			printf("%d ",arr[i][j]);
//		}
//		printf("\n");
//	}
//	
//return 0;
//}


等腰三角形的

//打印杨辉三角

//int main()
//{
//	int arr[10][10]={0};
//	int i = 0;
//	int j = 0;
//	int sz = 10; 
//
//	for(i=0;i<sz;i++)
//	{
//		
//
//		for(j=0;j<sz;j++)
//		{
//			//打印斜列
//			if(0==j)
//			{
//				arr[i][j] = 1;
//			}
//			if(i==j)              //若改为  if(sz==j)
//			{
//				arr[i][j] = 1;
//			}
//			//打印中间
//			if((i>1)&&(j>0))
//			{
//				arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
//			}
//		}
//
//	}
//    
//	for(i=0;i<sz;i++)
//	{	//打印空格
//		for(j=0;j<(sz-i-1);j++)
//		{
//			printf(" ");
//		}
//                            //和前面一处一起改的
//		for(j=0;j<=i;j++)  //此处若改为    for(j=0;j<i;j++)   也可以打印出,不过少了一行
//		{
//			printf("%3d ",arr[i][j]);
//		}
//		printf("\n");
//		printf("\n");
//
//	}
//		
//return 0;
//}



//int main()
//{
//	int i = 0;
//	int j = 0;
//	int arr[10][10] = {0};
//	int sz = 10;
//
//	for(i=0;i<sz;i++)
//	{
//           //打印空格
//		for(j=0;j<sz-i;j++)
//		{
//			printf(" ");
//		}
//
//		for(j=0;j<sz;j++)
//		{
//			//先打印斜边
//			if((0==j)||(sz==j))
//			{
//				arr[i][j] = 1;
//			}
//			
//			//打印中间
//			if(i>1&&j>0)
//			{
//				arr[i][j] = arr[i-1][j-1]+arr[i-1][j];	
//			}
//		}
//       
//		for(j=0;j<i;j++)
//		{
//			printf("%3d ",arr[i][j]);
//		}
//		printf("\n");
//		printf("\n");
//	}
	
//return 0;
//}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值