文章目录
1.计算1到10000以内个位数为7,且能被3整除的整数之和
#include <stdio.h>
int main()
{
int i=1,sum=0;
for(i=1;i<10000;i++)
{
if(i%10==7&&i%3==0)//(i%10==7可以检测个位数余7
{
sum+=i;
}
}
printf("sum=%d\n",sum);
return 0;
}
2.编写程序求出所有的水仙花数
水仙花数(3位数,各位数立方之和等于本身)
#include <stdio.h>
int main()
{
int i;
int a,b,c;
for(i=100;i<1000;i++)
{
a=i%10;
b=i/10%10;// %取小数点后面数字
c=i/100;// /取小数点前面数字
if(a*a*a+b*b*b+c*c*c==i)//立方之和等于本身
printf("水仙花数=%d\n",i);
}
return 0;
}
3.编写程序求一个整数各个位数之和
#include <stdio.h>
int main()
{
int n,sum=0;
scanf("%d",&n);
while(n!=0)//不知道数的大小,选用while,用最终条件
{
sum+=n%10;//取余
n=n/10;//除10前进
}
printf("各位数之和=%d\n",sum);
return 0;
}
4.编写程序将一个整数倒序输出
//简单写法,倒叙输出每一位
#include <stdio.h>
int main(void)
{
int n,sum=0;
scanf("%d",&n);
while(n!=0)
{
printf("%d\n",n%10); //取余
n=n/10;//除10前进
}
return 0;
}
//倒叙更改数字
#include <stdio.h>
int main(void)
{
int n,sum=0;
scanf("%d",&n);
while(n!=0)
{
sum=sum*10+n%10;//sum变化由个位数*10变化为十位数,然后再*10变为百位数等等
n=n/10;//除10前进,方便上行代码%10加数
}
printf("倒叙输出=%d\n",sum);
return 0;
}
5.编写程序,判断一个正整数是否为回文数
回文数(从左向右读和由右向左读数字一样)
#include <stdio.h>
int main(void)
{
int n,sum=0;
int num;
scanf("%d",&n);
num=n;//这行代码作用是为了后期与倒叙后的数进行比较
while(n!=0)
{
sum=sum*10+n%10;
n=n/10;
}
if(num==sum)
printf("%d\n是回文数",sum);
else
printf("不是回文数");
return 0;
}
6.编写程序判断一个正整数是否为质数
(只能被1和自身所整除的数)与它相反的是合数
(在所有的偶数中,只有2为质数)
#include <stdio.h>
int main(void)
{
int i;
int n;
int flag=1;//用来记录质数动态
scanf("%d",&n);
for(i=2;i<n;i++)//只有2为偶数中质数所以起始位置为2,i<n可以优化为i<n/2
if(n%i==0)
{
flag=0;//表示不是质数
printf("%d是合数",n);
break;
}
if(flag==1)
printf("%d是质数",n);
return 0;
}
7.输出1000以内所有的质数
#include <stdio.h>
int main() {
int n,i,flag;
for(n=2;n<1000;n++)
{
flag=1;
//外循环功能就是2~1000循环,每次内循环使flag初始化1,用来内循环记录flag是否为质数,
//不写则当下方第一个合数出现时,flag将一直为0,将停止输出剩下的质数
for(i=2;i<n;i++)
if(n%i==0)
{
flag=0;
break;
}
if(flag==1)
printf("%d\n",n);
}
return 0;
}
8.一维数组元素的输入和输出
#include <stdio.h>
int main()
{
int a[10],i;
for(i=0;i<10;i++)//切记,i从0开始,基本框架
{
scanf("%d",&a[i]); //数组元素的键盘输入
}
for(i=0;i<10;i++)
{
printf("%d\n",&a[i]);//数组元素的输出
}
}
9.数组元素的逆置
#include <stdio.h>
int main()
{
int a[7]={1,2,3,4,5,6,7},i,j,tmp;
for(i=0,j=6;i<j;i++,j--)//核心代码,下标为i的向后移动,下标为j的向前移动
{
tmp=a[i];//交换
a[i]=a[j];
a[j]=tmp;
}
for(i=0;i<7;i++)//这是数组输出模块,重新说明下标
printf("%d\t",a[i]);
}
10.数组的循环左移
(例如:1,2,3,4,5变为2,3,4,5,1)
#include <stdio.h>
int main()
{
int a[5]={1,2,3,4,5},i,top;
top=a[0];//top功能存放首元素
for(i=0;i<5;i++)//下标为0的向后移动,下标为j的向前移动
{
a[i]=a[i+1];
a[5]=top;//为什么是a[5],因为2-1,3-2,4-3,5-4,1-5在第五次进行赋值
}
for(i=0;i<5;i++)//这是数组输出模块
printf("%d\t",a[i]);
}
花神博客生涯之C语言( 题库中篇 )结束了哦~
接下来会持续更新(⊙o⊙)!