//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;
}
12周
最新推荐文章于 2022-07-11 15:40:17 发布