int main()
{
int repeat;
scanf("%d",&repeat);
int m,n,j,i,div,num,sum;
while(repeat--)
{
scanf("%d%d",&m,&n);
sum=0;//全局变量与局部变量的问题,如果定义在while的前面则错误
num=0;
if(m==n)
{
j=2;
while(j<m&&m%j!=0)j++;//j大于m就排除了1和2
if(m==j)
printf("count=1,sum=%d\n",m);//这里就可以直接输出,下面无须继续做了
else
printf("count=0,sum=0\n");
break;//这里要注意,其实不加也可以得出结论if else的作用
}
for(i=m;i<=n;i++)
{
j=2;
while(j<i&&i%j!=0)j++;
if(i==j)
{
sum+=i;
num++;
}
}
printf("count=%d,sum=%d\n",num,sum);
}
return 0;
}
2、求完数
#include<stdio.h>
int is(int a)
{
int i,sum=0;
for(i=1;i<a;i++)
{
if(a%i==0)
sum+=i;
}
if(sum==a||a==1)//有个1的问题要考虑到
return 1;
else
return 0;
}
int main()
{
int repeat;
scanf("%d",&repeat);
int m,n,j,i,num,sum;
while(repeat--)
{
scanf("%d %d",&m,&n);
sum=0;
num=0;
for(i=m;i<=n;i++)
{
j=is(i);
if(j==1)
printf("%d ",i);
}
printf("\n");
}
return 0;
}错误显示的是显示错误,不太清楚是为什么
3、#include<stdio.h>
int main()
{
int b,i,a[20],j;
while(~scanf("%d",&a[0]))
{
for(i=1;i<10;i++)//一开始没看清题目意思,总共要输入10个数
scanf("%d",&a[i]);
scanf("%d",&b);
b=b+30;
j=0;//一定要定义初始值,即0,不然会出错
for(i=0;i<10;i++)
{
if(b>=a[i])
j++;
}
printf("%d\n",j);
}
return 0;
}
4、#include<stdio.h>
int main()//三个数排序问题,只要一直保持a是最大的,所以a>b,a>c,且b>c
{
int T,i;
int a[10];
scanf("%d",&T);
while(T--)
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
int t;
if(a<b)
{
t=a;
a=b;
b=t;
}
if(a<c)
{
t=a;
a=c;
c=t;
}
if(b<c)
{
t=b;
b=c;
c=t;
}
printf("%d %d %d\n",a,b,c);
}
}
绝对值排序问题
#include<stdio.h>
#include<math.h>
void px(int a[],int n)
{
int i,j;
for(i=n-1;i>0;i--)//冒泡排序算法不太清楚,要了解
for(j=1;j<=i;j++)
{
if(abs(a[j-1])<abs(a[j]))//绝对值的函数abs
{
int t=a[j-1];
a[j-1]=a[j];
a[j]=t;
}
}
}
int main()
{
int T,i,j;
int a[100+10];
while(scanf("%d",&T)!=EOF)
{
if(T==0)
break;
for(i=0;i<T;i++)
{
scanf("%d",&a[i]);
}
px(a,T);
for(i=0;i<T;i++)
{
if(i!=0)//常见显示错误的解决办法(出首字母外都要加空格)
printf(" ");
printf("%d",a[i]);
}
printf("\n");//换行也要常记住
}
return 0;
}
5
鸡兔同笼问题
#include<stdio.h>
#include<math.h>
int main()
{
int T,n,m;
scanf("%d",&T);
while(T--)
{
scanf("%d %d",&n,&m);
int x=0,y=0;
x=2*n-m/2;
y=m/2-n;
if(x>=0&&y>=0&&x+y==n&&(2*x+4*y==m))//问题在于什么时候是有解的 因为无解的情况太难表示了,而有解的情况只要摆出条件即可
{
printf("%d %d\n",x,y);
}
else
printf("No answer\n");
}
return 0;
}