12周

//1 

#include<stdio.h>
#include<string.h>
int main()
{
	char a[1000],b[1000];
	int a1[1000]={0},b1[1000]={0},c1[10001]={0}; //初始化 
	int i,j,flag,lena,lenb,maxlen;
	printf("int put 1 group numbers:");	
	gets(a);
	printf("int put 2 group numbers:");
	gets(b);
	lena=strlen(a);
	lenb=strlen(b);
	if(lena>lenb)
	{
		maxlen=lena;
	}
	else
		maxlen=lenb;
	j=0;
	for(i=lena-1;i>=0;i--)    //字符转数字   倒叙排列 
	{
		a1[j]=a[i]-'0';
		j++;
	}
	j=0;
	for(i=lenb-1;i>=0;i--)
	{
		b1[j]=b[i]-'0';
		j++;
	}
	flag=0;  //进位初始化 
	for(i=0;i<maxlen+1;i++)
	{
		c1[i]=(a1[i]+b1[i])%10+flag;
		if(((a1[i]+b1[i])/10)!=0)
		{
			flag=1;
		}
		else 
			flag=0;
	}
	for(i=maxlen;i>=0;i--)   //i 当作指针  由后向前找 第一个不为0的数 
	{
		if(c1[i]!=0)
		{
			break;
		}
		
	}	
	printf("add out:");
	for(i;i>=0;i--)           //结果倒排  倒叙输出 
	{
		printf("%d",c1[i]);
	} 
	printf("\n");
	return 0;
}


// o(maxlen+1)    




#include<stdio.h>
#include<string.h>
int main()
{
	
	char a[1000],b[1000];
	int a1[1000]={0},b1[1000]={0},c1[10001]={0}; //初始化 
	int i,j,flag,lena,lenb,maxlen,i1,i2;
		
		printf("int put 1 group numbers:");	
		gets(a);
		printf("int put 2 group numbers:");
		gets(b);
		lena=strlen(a);
		lenb=strlen(b);
		
		j=0;
		for(i=lena-1;i>=0;i--)    //字符转数字   倒叙排列 
		{
			a1[j]=a[i]-'0';
			j++;
		}
		j=0;
		for(i=lenb-1;i>=0;i--)
		{
			b1[j]=b[i]-'0';
			j++;
		}
	/*	for(i=0;i<lenb;i++)
		{
			printf("%d ",b1[i]);
		}
	*/		
		flag=0;  //进位初始化 
		for(i1=0;i1<lenb;i1++)
		{
			for(i2=0;i2<=lena;i2++)
			{
				c1[i1+i2]=((b1[i1]*a1[i2])%10)+c1[i1+i2]+flag;
				if((c1[i1+i2])>=10)
				{
					c1[i1+i2+1]=(c1[i1+i2])/10;
				}
			//	else
			//	flag=(b1[i1]*a1[i2])/10;
			}
		}
		for(i=1000;i>=0;i--)   //i 当作指针  由后向前找 第一个不为0的数 
		{
			if(c1[i]!=0)
			{
				break;
			}			
		}	
		printf("add out:");
		for(i;i>=0;i--)           //结果倒排  倒叙输出 
		{
			printf("%d",c1[i]);
		} 
		printf("\n");
	
	return 0;
}




#include<stdio.h>
int main()
{
	double add=0,multi=1,number;
	int judge;
	printf("choice 1 is add,2 is multiplication:");
	scanf("%d",&judge);
	if(judge==1)
	{
		printf("in put number:");
		while(1)
		{
			scanf("%lf",&number);
			add=add+number;
			printf("add out:%lf ",add);
		}
	}
	else if(judge==2)
	{
		printf("in put number:");
		while(1)
		{
			scanf("%lf",&number);
			multi=multi*number;
			printf("multi out:%lf ",multi);
		}
	}
	else 
	printf("wrong number!\n");
	
	return 0;
	
} 





//2=================================================================

#include<stdio.h>
int main()
{
	int max,min,temp;
	int n,i;
	printf("in put how many:");
	while(scanf("%d",&n)!=-1)  //多个输入 
	{
		printf("in put %d number:",n);
		for(i=0;i<n;i++)
		{
			if(i==0)  //min max 初始化 先赋值 第一个元素 
			{
				scanf("%d",&max);
				min=max;
			}
			else
			{
				scanf("%d",&temp);
				if(min>temp)
				{
					min=temp;
				}
				else
				{
					max=temp;
				}
			}
			
		}
		printf("max:%d  min:%d\n",max,min);
	}
	return 0;
}

//3=============================================================

#include<stdio.h>
void show_num(int *a,int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		printf("%d ",a[i]);
	}
	printf("\n");
}
int main()
{
	int a[10000],temp;
	int n,i,j,t;
	printf("in put how many:");
	while(scanf("%d",&n)!=-1)  //多个输入 
	{
		for(i=0;i<n;i++)
		{
			scanf("%d",&a[i]);
		}
		for(i=0;i<n-1;i++)   //冒泡 小到大   n个数进行n-1次排序   控制次数 
		{
			for(j=0;j<n-1-i;j++)   //前后冒泡开始比较   控制位次  n-1-i之后的已经排好顺序 
			{
				if(a[j]>a[j+1])
				{
					temp=a[j];
					a[j]=a[j+1];
					a[j+1]=temp;
				}
			}
			
		}
		show_num(a,n);
	
	
		for(i=0;i<n-1;i++)   //选择排序   大到小 
		{
			t=i;                  //每次排序  查询到最大的值  一次放到对应的第一个位置 
			for(j=i+1;j<n;j++)
			{
				if(a[j]>a[t])
				{
					t=j;
				}
				if(i!=t)
				{
					temp=a[i];
					a[i]=a[t];
					a[t]=temp;
				}
			}
		}
		show_num(a,n);
	} 
	return 0;
}

//4=======================================================================================

#include<stdio.h>
#include<string.h>
int main()
{
	char abc[10000];
	int n,i,lon;
	printf("in put chars:");
	scanf("%s",abc);
	lon=strlen(abc);
	for(i=0;i<lon;i++)
	{
		if('A'<=abc[i]&&abc[i]<='Z') //&&&&&&&&&&&&&&&&&  大写在前
		{
			abc[i]=abc[i]+32;		
		}
		//abc[i]=abc[i]-32;	
		else 
		{
			abc[i]=abc[i]-32;			
		}		  		
	}		
	printf("%s",abc);
	return 0;
} 

//=5=======================================================================================

#include<stdio.h>
#include<string.h>
int main()
{
	char c;
	int n,i,lon;
	printf("in put char:");
	while(scanf("%c",&c)!=-1)
	{
		getchar();   //接收回车 
		if((65<=c&&c<=90)||(97<=c&&c<=122))
		{
			printf("字母\n"); 
		}
		else if(48<=c&&c<=57)
		{
			printf("数字\n");
		}
		else
		printf("符号\n");
	}
	return 0;
} 

//6================================================

#include<stdio.h>
int main()
{
	int year;
	printf("int put year:");
	while(scanf("%d",&year)!=-1)
	{	
		//能被4整除但不能被100整除,或能被400整除的年份即为闰年
		if ((year % 400 == 0) || (year % 100 != 0 && year % 4 == 0))  
	    {  
	        printf("闰年\n");
	    }  
	    else
	    	printf("不是闰年的年....\n");		
	}	
	return 0;
}

//=7===========================================================
#include<stdio.h>
int main()
{
	int b,a;
	while(scanf("%d",&b)!=-1)
	{	
		if(b<0||b>100)
		{
		printf(	"Score is error!\n");
		continue;
		}
		a=b/10;
		switch(a)
		{ 
        case 10: printf("A\n");break;
        case 9: printf("A\n");break;
		case 8: printf("B\n");break;
		case 7: printf("C\n");break;
		case 6: printf("D\n");break;
		default:  printf("E\n");break;
		}	
	}
	return 0;
}

//=8===============================================================

#include<stdio.h>
int main()
{
	int num1,num2,max,min,i;
	printf("in put two numbers:");
	scanf("%d%d",&num1,&num2);
	if(num1>num2)   // 1小   2 大数 
	{
		max=num1;
		num1=num2;
		num2=max;
	}
	for(i=1;i<=num1;i++)     //最da因数 
	{
		if((num1%i==0)&&(num2%i==0))
		{
			max=i;
		}
	}
	for(i=num1*num2;i>=num2;i--)  //最小 公倍数 
	{
		if((i%num1==0)&&(i%num2==0))
		{
			min=i;
		}
	}
	
	printf("put out: 公因数:%d 公倍数:%d\n",max,min);
	
	return 0;
} 
//====9==============================================================================



/*long long a[10000];
long long  f(int x)
{	
	if(x==1||x==0) return a[x]=1;
	else if (a[x]>-1) return f[x];
	else return a[x]=f(x-1)+f(x-2);
}

*/
#include<stdio.h>   //F[n]=F[n-1]+F[n-2](n>=2,F[0]=0,F[1]=1 n=2 1) 
long long a[10000];
long long  f(int x)
{	if(x==0) return a[x]=0;
	if(x==1||x==2) return a[x]=1;
	else if (a[x]>-1) return a[x];
	else return a[x]=f(x-1)+f(x-2);
}
int main()
{
	int n;,
	int i;
	while(1)
	{
		for(i=0;i<10000;i++)   //初始化  -1标识 
		{
			a[i]=-1;
		}
		printf("in put n:");
		scanf("%d",&n);
		printf("\n%lld\n",f(n));	
	}
	return 0;
} 


//====10=======================================================================



#include<stdio.h>
int main()
{
	int students=0,equal=0,number=0;
	int i,n,a[1000],aa[11],j;
	for(i=0;i<10;i++)  //计数 初始化 
	{
		aa[i]=0;       //计数 数组 
	}
	printf("in put how many students:");
	while(scanf("%d",&n)!=-1)
	{
		printf("in put score:");
		for(i=0;i<n;i++)
		{
			scanf("%d",&a[i]);
			students=students+a[i];   //总成绩 
			j=a[i]/10;
			aa[j]=aa[j]+1;        // 记录分数段人数 
			
		}
		equal=students*1.0/n*1.0;  //平均成绩
		printf("all add score:%d\n",students); 
		printf("equal score:%d\n",equal); 
		for(i=0;i<10;i++)
		{
			printf("%d-%d段人数为:%d\n",i*10,(i+1)*10,aa[i]);
		}	
	}
		
	return 0;
} 
	



//=11======================================================================

/*
哥德巴赫1742年给欧拉的信中哥德巴赫提出了以下猜想:
任一大于2的偶数都可写成两个质数之和。
证 两质素相加为偶数   
*/

#include<stdio.h>
int judge(int a)
{
	int i;
	if(a==1)
	{
		return 0;
	}
	else if(a==2)
	{
		return 1;
	}
	else if(a>2)
	{
		for(i=2;i<a;i++)
		{
			if(a%i==0)
			{
				return 0;
			}
		}
		return 1;
	}
	else 
		return 0;
}
int main()
{
	int n,i;
	printf("int put a even number big than 2:");
	scanf("%d",&n);
	for(i=2;i<n/2;i++)
	{
		if(judge(i)&&judge(n-i))
		{
			printf("%d+%d=%d\n",i,n-i,n);
		}
	}
	
	return 0;
} 







#include<stdio.h>
#include<math.h>
int judge(int a)
{
	int i;
	if(a==1)
	{
		return 0;
	}
	else if(a==2)
	{
		return 1;
	}
	else if(a>2)
	{
		for(i=2;i<a;i++)
		{
			if(a%i==0)
			{
				return 0;
			}
		}
		return 1;
	}
	else 
		return 0;
}
int main()
{
	int min,max;
	int i,j,qaq,flag=1;
	
	printf("in put min big than 3 number:");
	scanf("%d",&min);
	printf("in put max big than 3 number:");
	scanf("%d",&max); 
//printf("%d  ",(int)sqrt(min));

	for(i=min;i<(min+max)/2;i++)
	{
//			printf("%d \n",judge(i));
		if(judge(i))
		{
			
			for(j=(min+max)/2;j<max;j++)
			{
				if(judge(j))
				{
					qaq=i+j;
					if(qaq%2!=0)
					{
						flag=0;
					}
					printf("%d+%d=%d ",i,j,i+j);
				}
			}
			
		}
	
	}
	if(flag==1)
	{
		printf("猜想正确\n");
		
	} 
	else
		printf("猜想错误\n");
/*	for(i=3;i<(min/2);i++)
	{
		if(judge(i))
		{
			if(judge(min-i))
			{
				printf("%d=%d+%d  ",min,i,min-i);
			}
		}
	}	
*/	
	return 0;
} 

//===12========================================================================

#include<stdio.h>
#include<math.h>
int judge(int a)  //素数 
{
	int i;
	if(a==1)
	{
		return 0;
	}
	else if(a==2)
	{
		return 1;
	}
	else if(a>2)
	{
		for(i=2;i<a;i++)
		{
			if(a%i==0)
			{
				return 0;
			}
		}
		return 1;
	}
	else 
		return 0;
}
int shuishui(int a)  //水仙   必须是3位数才是水仙 
{
	int g,s,b;
	if(a>99&&a<1000)
	{
	
		b=a/100;
		s=a%100/10;
		g=a%10;	
		if(a==b*b*b+s*s*s+g*g*g)
		{
			return 1;
		}
		else
			return 0;
	}
	else
	 	return 0;
}
int ww(int a)   //完全平方 
{
	int i;
	if(a==0)    //除去0 
	{
		return 0;
	}
	i=(int)sqrt(a);
	if(a==i*i)
	{
		return 1;
	}
	else 
	    return 0;
}
int main()
{
	int min,max;
	int i,j,s[10000]={0},shui[10000]={0},w[10000]={0};
/*	
	for(i=0;i<10000;i++)
	{
		s[i]=shui[i]=w[i]=0;
	}
*/	
	printf("in put min number:");
	scanf("%d",&min);
	printf("in put max number:");
	scanf("%d",&max); 
//	printf("%d ",ww(min));
//	printf("%d ",ww(max));	
	for(i=min;i<=max;i++)    //判断对应数组 真值表   以下类同 
	{
		if(judge(i)==1)
		{
			s[i]=1;
		}
		if(shuishui(i)==1)
		{
			shui[i]=1;
		}
		if(ww(i)==1)
		{
			w[i]=1;
		}				
	}
	printf("素数:");
	for(i=min;i<=max;i++)
	{
		if(s[i])
		{
			printf("%d ",i);
		}

	
	}
	printf("\n水仙花:");
	for(i=min;i<=max;i++)
	{
		if(shui[i])
		{
			printf("%d ",i);
		}
	
	}
	printf("\n完全平方:");
	for(i=min;i<=max;i++)
	{
		if(w[i])
		{
			printf("%d ",i);
		}	
	
	}
	return 0;
} 
//==13==============================================================
#include<stdio.h> 
int A[1000][1000]={0},B[1000][1000]={0},C[1000][1000]={0}; 
int main(){
    int m,s,n,i,j,z;
	printf("m行 s列  s行 n列");
    scanf("%d%d%d",&m,&s,&n);
    
    for(i=0;i<m;i++)
	{
        for(j=0;j<s;j++)
		{
            scanf("%d",&A[i][j]);
        }
    }
    printf("ok in next\n");
    
    for(i=0;i<s;i++)
	{
        for(j=0;j<n;j++)
		{
            scanf("%d",&B[i][j]);
        }
    } 
    for(i=0;i<m;i++)  //第一个的 行 
    for(j=0;j<n;j++)  //第二个的列 
    for(z=0;z<s;z++)  //动力  推动相加 
	{
        C[i][j] += A[i][z]*B[z][j];
    }
            
	for(i=0;i<m;i++)
	{
    	for(j=0;j<n;j++)
        printf("%d ",C[i][j]);
               
	    printf("\n");
    }
}




#include<stdio.h>
int a[1000][1000],b[1000][1000],c[1000][1000],q[1000][1000]={0};  //爆内存 
int main()
{	
	int n,i,j;	
	printf("输入N*N的矩阵N:");
	scanf("%d",&n);	
	printf("in put 1th number:\n");
	for(i=0;i<n;i++)   //行 
	{
		for(j=0;j<n;j++)  //列 
		{
			scanf("%d",&a[i][j]);			
		}
	}
	printf("in put 2th number:\n");
	for(i=0;i<n;i++)   //行 
	{
		for(j=0;j<n;j++)  //列 
		{
			scanf("%d",&b[i][j]);			
		}
	}
	for(i=0;i<n;i++)  // 之和 
	{
		for(j=0;j<n;j++)
		{
			c[i][j]=a[i][j]+b[i][j];			
		}		
	}
	for(i=0;i<n;i++)   //之乘 
	{	
		for(j=0;j<n;j++)
		{
			q[i][j]=a[i][j]*b[j][i]+q[i][j];		
					
		}
	}
	printf("加矩阵\n");
	for(i=0;i<n;i++)   
	{
		for(j=0;j<n;j++)
		{
			printf("%d ",c[i][j]);
		}
		printf("\n");
	}
	printf("乘矩阵\n");
	for(i=0;i<n;i++)   
	{
		for(j=0;j<n;j++)
		{
			printf("%d ",q[i][j]);
		}
		printf("\n");
	}
	return 0;
} 

//===15============================================================================


#include<stdio.h>
#include<string.h>
int main()
{
	char a[1000];
	int i,len,count=0;
	printf("int put words:");
	gets(a);    //gets 可接受 空格 
//	printf("%s",a);
	len=strlen(a);
	for(i=0;i<len;i++)  //初始化指针   使i指向第一个不为空格的位置 
	{
		if(a[i]!=' ')
		{
			break;
		}
	}
	for(i;i<len-1;i++)
	{
		if(a[i]==' ')
		{
			if(a[i+1]!=' ')   //排除一个单词之间多个空格的情况 
			{
				count++;
			}
		}
		
	}
	printf("\n%d 个单词",count+1);	
	return 0;
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值