1.计算素数和
输入两个正整数m和n(m<n),求m到n之间(包括m和n)所有素数的和,要求定义并调用函数isprime(x)来判断x是否为素数(素数是除1以外只能被自身整除的自然数)。
输入
m n
输出
素数和
样例输入复制
2 3
样例输出复制
5
#include <stdio.h>
int isprime(int x);
int main()
{
int m,n;
scanf("%d %d",&m,&n);
int p=0;
for(m;m<=n;m++)
{
if(isprime(m))
{
p=p+m;
}
}
printf("%d",p);
return 0;
}
int isprime(int x)
{
int i;
int a=0;
if(x==1)
{
return 0;
}
for(i=2;i<x;i++) //这里用i=2,实际过滤掉了2 ,即2不进入判定
{
if(x%i==0)
{
a++;//因数++
}
}
if(a==0)
{
return 1;//是素数
}
else
{
return 0;
}
}
2.进制转换
题目描述
编程,输入一个10进制正整数,然后输出它所对应的八进制数。
输入
无
输出
无
样例输入复制
10
样例输出复制
12
#include <stdio.h>
int main()
{
int a;
scanf("%d",&a);
printf("%o",a);
return 0;
}
3.温度转换
题目描述
输入一个华氏温度,要求输出摄氏温度。公式为
保留两位小数
输入
无
输出
无
样例输入复制
-40
样例输出复制
-40.00
#include <stdio.h>
int main()
{
int a;
float b;
scanf("%d",&a);
b=(float)5/9 * (a-32);
printf("%.2f",b);
return 0;
}
4.分段函数
题目描述
有一个函数如下,写一程序,输入x,输出y值。
保留两位小数
输入
无
输出
无
样例输入复制
1
样例输出复制
1.00
#include <stdio.h>
int main()
{
float x;
scanf("%f",&x);
if(x<1)
{
printf("%.2f",x);
}
else if(1<=x<10)
{
printf("%.2f",2*x-1);
}
else if(x>=10)
{
printf("%.2f",3*x-11);
}
return 0;
}
5 .求偶数和
题目描述
编制程序,输入n个整数(n从键盘输入,n>0),输出它们的偶数和。
输入
无
输出
无
样例输入复制
2 1 2
样例输出复制
2
#include <stdio.h>
int even(int x);
int main()
{
int n;
int a[n];
scanf("%d",&n);
int i;
int p=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
if(even(a[i]))
{
p=p+a[i];
}
}
printf("%d",p);
}
int even(int x)
{
if(x%2==0)
{
return 1;
}
else
{
return 0;
}
}
6.等差数列
题目描述
sum=2+5+8+11+14+…,输入正整数n,求sum的前n项和。
输入
无
输出
无
样例输入复制
2
样例输出复制
7
#include <stdio.h>
int main()
{
int n;
int sum;
int i;
int b=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=3*i-1;
b+=sum;
}
printf("%d",b);
return 0;
}
7.同因查找
题目描述
求出10至1000之内能同时被2、3、7整除的数,并输出。
每行一个。
输入
无
输出
无
样例输入复制
无
样例输出复制
无
#include <stdio.h>
int main()//2 3 7
{
int i;
for(i=10;i<=1000;i++)
{
if(i%2==0)
{
if(i%3==0)
{
if(i%7==0)
{
printf("%d\n",i);
}
}
}
}
}
8.计负均正
题目描述
从键盘输入任意20个整型数,统计其中的负数个数并求所有正数的平均值。
保留两位小数
输入
无
输出
无
样例输入复制
1 2 3 4 5 6 7 8 9 10 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10
样例输出复制
10 5.50
#include <stdio.h>
int main()
{
int a[10];
int b[10];
int j,k;
int d=0;
int f=0;
int c=0;
int h=0;
for(j=0;j<10;j++)
{
scanf("%d",&a[j]);
if(a[j]<0)
{
d++;
}
else
c+=a[j];
}
for(k=0;k<10;k++)
{
scanf("%d",&b[k]);
if(b[k]<0)
{
f++;
}
else
h+=b[k];
}
float m;
m=(float)(c+h)/(20-(d+f));
printf("%d\n",d+f);
printf("%.2f",m);
return 0;
}
9.公约公倍
题目描述
输入两个正整数m和n,求其最大公约数和最小公倍数。
输入
无
输出
无
样例输入复制
2 3
样例输出复制
1 6
#include <stdio.h>
int gb(int a,int b)
{
int i,j,k,m=0;
if(a>b)
{
if(a%b==0)
{
return a;
}
else
{
if(a==1||b==1||a==2||b==2)
{
return a*b;
}
else
{
for(i=2;i<=b;i++)
{
if(a%i==0&&b%i==0)
{
j = a/i;
k = b/i;
m=i;
}
}
if(m!=0)
{
return m*j*k;
}
else
{
return a*b;
}
}
}
}
else if(a<b)
{
if(b%a==0)
{
return b;
}
else
{
if(a==1||b==1||a==2||b==2)
{
return a*b;
}
else
{
for(i=2;i<=a;i++)
{
if(a%i==0&&b%i==0)
{
j = a/i;
k = b/i;
m=i;
}
}
if(m!=0)
{
return m*j*k;
}
else
{
return a*b;
}
}
}
}
else if(a==b)
{
return a;
}
}
int gy(int a,int b)
{
int i;
int j;
int k;
i = a*b;
j = gb(a,b);
k = i/j;
return k;
}
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d\n%d",gy(a,b),gb(a,b));
return 0;
}
10.统计字符
题目描述
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
输入
无
输出
无
样例输入复制
a 1,
样例输出复制
1 1 1 1
#include <stdio.h>
#include <string.h>
int main(void)
{
int i,j;
int a=0,b=0,c=0,d=0;
char o[100];
for(i=0;i<100;i++)
{
scanf("%c",&o[i]);
if(o[i]=='\n')
{
j = i;
break;
}
}
for(i=0;i<j;i++)
{
if(((int)o[i]>=65&&(int)o[i]<=90)||((int)o[i]>=97&&(int)o[i]<=122))
{
a++;
}
else if(o[i]==32)
{
b++;
}
else if(isdigit(o[i]))//判断字符是否为数字
{
c++;
}
else
{
d++;
}
}
printf("%d\n%d\n%d\n%d",a,b,c,d);
}
11.最小绝对值
题目描述
输入10个数,找出其中绝对值最小的数,将它和最后一个数交换,然后输出这10个数。
输入
十个数
输出
交换后的十个数
样例输入复制
10 2 30 40 50 60 70 80 90 100
样例输出复制
10 100 30 40 50 60 70 80 90 2
#include <stdio.h>
#include <math.h>
int main()
{
int a[10];
int b[10];
int i;
int j;
int k;
int t;
for(i=0;i<=9;i++)
{
scanf("%d",&a[i]);
b[i]=abs(a[i]);
}
for(i=9;i>=0;i--)
{
for(j=0;j<i;j++)
{
if(b[i]<b[j])
{
k=i;
}
else
{
k=j;
}
}
}
t=a[9];
a[9]=a[k];
a[k]=t;
for(i=0;i<=9;i++)
{
printf("%d ",a[i]);
}
return 0;
}