1.求1000以内的完数
它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
#include <stdio.h>
int main() {
printf("求1000以内的完数\n");
int i, j, sum, yin;
for(i=2; i<1000; i++) {
sum = 0;
yin = i;
for (j=1; j<i; j++) {
if(yin%j==0){
sum = sum + j;
}
}
if (sum == yin) {
printf("%d\n", yin);
}
}
return 0;
}
2.求圆的周长和面积
#include <stdio.h>
#define PI 3.1415
float s(float r) {
float s;
s = PI*r*r;
return s;
}
float c(float r) {
float c;
c = 2*PI*r;
return c;
}
int main() {
float x;
scanf("%f", &x);
printf("面积是%f\n", s(x));
printf("周长是%f\n", c(x));
return 0;
}
3.输出9*9口诀。共9行9列,i控制行,j控制列
#include <stdio.h>
int main() {
int i,j,result;
for(i=1;i<10;i++){
for(j=1;j<=i;j++){
result=i*1;
printf("%d*%d=%-3d",i,j,result);
}
printf("\n");
}
return 0;
}
4.生兔子问题
1 1 2 3 5 8 13 21 34 55...
// 递归
#include <stdio.h>
int Feibonacci(int n) {
if (n==1 || n==2) {
return 1;
} else {
return Feibonacci(n-1) + Feibonacci(n-2);
}
}
int main() {
int n=10; // 需要计算的月份
printf("请输入计算的月数:");
scanf("%d",&n);
printf("%d个月的兔子总数为%d", n, Feibonacci(n));
return 0;
}
5.判断是否为素数。
质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
#include <stdio.h>
int main() {
int i,k,n=7;
for(i=2; i < sqrt(n); i++) {
if(n%i == 0) break;
}
if(i>sqrt(n)) {
printf("%d是素数", n);
} else {
printf("%d不是素数", n);
}
return 0;
}
6.求出100~200之间的素数
#include <stdio.h>
int main() {
int i;
for(int n=100; n<200; n++) {
for(i=2; i<sqrt(n); i++) {
if(n%i==0)break;
}
if(i>sqrt(n)){
printf("%d是素数\n", n);
}
}
return 0;
}
7.有1,2,3,4这四个数字,能够组成互不相同的三位数。
#include <stdio.h>
int main() {
int i,j,k,count=0;
for(i=1; i<5; i++)
for(j=1; j<5; j++)
for(k=1; k<5; k++)
if(i!=j&&i!=k&&j!=k) {
if(count%5==0){
printf("\n");
}
count++;
printf("%d,%d,%-4d",i,j,k);
}
printf("一共有%d", count);
return 0;
}
8.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
#include <stdio.h>
int main() {
long int i,x,y,z;
for(i=1; i< 100000; i++){
x = sqrt(i+100);
y = sqrt(i+268);
if (x*x==i+100 && y*y==i+268) {
printf("%d\n", i);
}
}
return 0;
}
9.输入某年某月某日,判断这一天是一年的第几天
// 判断闰年,能够整除4,不能整除100,或者能够整除400
#include <stdio.h>
int days(int year, int month, int day) {
int i,sumDays = 0,arr[]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if ((year%4==0&&year%100!=0||year%400==0)&&month>2){
sumDays=1;
}
for(i=0; i<month-1; i++) {
sumDays = sumDays + arr[i];
}
if (day>0) {
sumDays += day;
}
return sumDays;
}
int main() {
printf("%d", days(2018, 2, 20));
return 0;
}
10.输入三个整数x,y,z,请把这三个数由小到大输出。
#include <stdio.h>
int main() {
int x=10,y=2, z=5, t;
// printf("请输入x,y,z三个数");
// scanf("%d,%d,%d",&x, &y, &z);
if (x>y){
t=x;x=y;y=t;
}
if (x>z){
t=x; x=z; z=t;
}
if (y>z){
t=y; y=z; z=t;
}
printf("从小到大排序为:%d,%d,%d", x, y, z);
return 0;
}
11.打印杨辉三角
#include <stdio.h>
int main() {
int i,j,z,a[10][10];
for(i=0;i<10;i++){
a[i][i]=1;
a[i][0]=1;
}
for(i=2;i<10;i++) {
for(j=1;j<i;j++) {
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
for(i=0;i<10;i++) {
for(z=0;z<(10-i-1)/2;z++) {
printf(" ");
}
for(j=0;j<=i;j++) {
printf("%4d",a[i][j]);
}
printf("\n");
}
return 0;
}
12.实现字符串反序输出
#include <stdio.h>
int main() {
int i,j,k;
char a[100]="abcdefgllllsss",c;
k = strlen(a);
for(i=0,j=k-1;i<k/2;i++,j--){
c=a[i];
a[i]=a[j];
a[j]=c;
}
printf("%s",a);
return 0;
}
13.从字符数组a中删除存放子c中的字符
#include <stdio.h>
int main() {
int i,k;
char a[100]="12jsanndjkammjsll",c='j';
for(i=k=0;a[i]!='\0';i++){
if(a[i]!=c) {
a[k++]=a[i];
}
}
a[k]='\0';
printf("%s",a);
return 0;
}
14.编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小排序
#include <stdio.h>
void sort(int *x, int n){
int i,j,k,t;
for(i=0; i<n;i++){
k=i;
for(j=i+1;j<n;j++){
if(x[j]>x[k])k=j;
}
if(k!=i){
t=x[i];
x[i]=x[k];
x[k]=t;
}
}
}
int main() {
int a[]={9,10,8,3,4,7,8,7,0,99},i,k;
k=sizeof(a)/sizeof(int);
sort(a,k);
for(i=0;i<k;i++){
printf("%d,",a[i]);
}
return 0;
}
15.已知数组a中元素已经从小到大排序,实现插入x值后,数组仍然按从小到大进行排序
#include <stdio.h>
int main() {
int a[]= {0, 2, 3, 5, 6, 9, 10};
int x=4,i,j;
i=j=sizeof(a)/sizeof(int);
while(a[i-1]>x){
a[i+1]=a[i];
i--;
}
a[++i]=x;
j++;
for(i=0;i<j;i++){
printf("%4d",a[i]);
}
return 0;
}
16.找出3位数里的水仙花
三位自幂数:水仙花数
#include <stdio.h>
int main() {
int i,j,g,s,b,sum;
for(i=100;i<=999;i++){
b=i/100;
s=(i%100)/10;
g=i%10;
sum=g*g*g+s*s*s+b*b*b;
if(sum==i){
printf("%d\n",i);
}
}
return 0;
}