目录
1.小球落下
//小球从100米处落下,每次落地后又反跳回来,高度返回到原来的1/2,然后再落下,问:第10次落地时,共经过了多少米?第10次反弹时的高度为多少?
#include<stdio.h>
main()
{
float sum = 100, journey1 = 100,journey2;
int i, n=1;
for (i = 2; i <= 10; i++)
{
journey1= journey1 / 2;
journey2 = journey1 * 2;
sum += journey2;
printf("第%d次下落,共经过%F,本次为%f\n", i, sum, journey1/2);
}
}
2.当前日期,判断 过一千天后,日期是多少
//当前日期,判断1000天后是多少,日期
#include<iostream>
int check(int year)
{
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
return 1;
else
return 0;
}
int main()
{
//string start="2014-11-09";
int year = 2023, month = 10, day = 30;
for (int i = 1; i <= 1000; i++)
{
day++;
if (month > 12)
{
year++;
month = month % 12;
}
switch (check(year))
{
case 0:
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if (day > 31)
{
month++;
day = day % 31;
}
break;
case 2:
if (day > 28)
{
month++;
day = day % 28;
}
break;
case 0:
case 4:
case 6:
case 9:
case 11:
if (day > 30)
{
month++;
day = day % 30;
}
break;
}
break;
case 1:
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if (day > 31)
{
month++;
day = day % 31;
}
break;
case 2:
if (day > 29)
{
month++;
day = day % 29;
}
break;
case 0:
case 4:
case 6:
case 9:
case 11:
if (day > 30)
{
month++;
day = day % 30;
}
break;
}
break;
}
}
printf("% d % d % d", year, month, day);
}
3.100 -1000以内的Armstrong 数
//判断100 -1000以内的Armstrong 数
//Armstrong 数:就是n位数的各位数的n次方之和等于该数,例如:
//153 = 1 ^ 3 + 5 ^ 3 + 3 ^ 3
//1634 = 1 ^ 4 + 6 ^ 4 + 3 ^ 4 + 4 ^ 4
#include<stdio.h>
#include<math.h>
main()
{
int i, a, n = 0, j, sum = 0;
for (i = 100; i <= 1000; i++)
{
a = i;
while (a > 0)
{
n++;
a /= 10;
}
a = i;
for (j = 0; j < n; j++)
{
sum += pow(a % 10, n);
a /= 10;
}
if (sum == i)
{
printf("%d ", i);
}
sum = 0;
n = 0;
}
}
4.输出倒三角
//输出倒三角
#include<stdio.h>
main()
{
int i,n=5,j,k;//n为层数
for (i = 1; i < n; i++)
{
for (j = 1; j < n - i; j++)
{
printf(" ");
}
for (k = 1; k <=i * 2 - 1; k++)
{
printf("*");
}
printf("\n");
}
}
5.输出杨辉三角
#include<stdio.h>
main()
{
int i,j,spese,row,coef;
printf("请输入层数");
scanf("%d",&row);
for(i=0;i<row,i++)
{
for(spece=1;spece<row;spece++)
{
printf(" ");
}
for(j=0;j<i,j++)
{
if(i==0||j==0)
{
coef=1;
}
elss
{
coef=coef*(i-j+1)/j;
printf("%4d",coef);
}
printf("\n");
}
}
6.弗洛伊德三角
#include<stdio.h>
main()
{
int i=1, row,j,n=1;
for (row = 1; row <= 5; row++)
{
for (j = 1; j <= row; j++)
{
printf("%d ", n++);
}
printf("\n");
}
}
7.1000以内的素数
#include<stdio.h>
main()
{
int i, j, count = 0;
for (i = 2; i <= 1000; i++)
{
for (j = 2; j <= i / 2; j++)
if (i % j == 0)
break;
if (j>i/2)
{
printf("%d ", i);
count++;
}
}
}
8.一个数等于两个素数之和
#include<stdio.h>
int sushu(int num)
{
int i;
for (i = 2; i <= num / 2; i++)
{
if (num % i == 0)
{
return 0;
}
}
return 1;
}
main()
{
int i, num;
printf("请输入你的数:");
scanf_s("%d", &num);
for (i = 2; i <= num / 2; i++)
{
if(sushu(i)==1)
if (sushu(num - i) == 1)
{
printf("%d=%d+%d", num, i, num - i);
printf("\n");
}
}
}
9.两个多维数组 矩形相加
#include<stdio.h>
#include<math.h>
//使用多维数组将两个矩阵相加
main()
{
int h,l,x;
int a[100][100], b[100][100], sum[100][100];
printf("请输入你的列数");
scanf_s("%d", &l);
printf("请输入你的行数");
scanf_s("%d", &h);
for(int i =0;i<h;i++)
for (int j = 0; j < l; j++)
{
printf("请输入 a%d%d", i + 1, j + 1);
scanf_s("%d", &x);
a[i][j] = x;
}
for (int i = 0; i < h; i++)
for (int j = 0; j < l; j++)
{
printf("请输入 b%d%d", i + 1, j + 1);
scanf_s("%d", &x);
b[i][j] = x;
}
for (int i = 0; i < h; i++)
for (int j = 0; j < l; j++)
{
sum[i][j] = a[i][j] + b[i][j];
}
printf("两个数组相加为:\n");
for (int i = 0; i < h; i++)
{
for (int j = 0; j < l; j++)
{
printf("%d ", sum[i][j]);
}
printf("\n");
}
}
10.输入一段文章 删除里面的'c'字符
#include<stdio.h>
main()
{
char s[20];
int i, j;
gets(s);
for (i = 0, j = 0; s[i] != '\0'; i++)
if (s[i] != 'c')
s[j++] = s[i];
s[j] = '\0';
puts(s);
}
11.随意进制转换
#include<stdio.h>
#include<math.h>
main()
{
int num, base, newbase, newnum=0,copynum,i=0;
printf("请输入你的数和进制,以及你需要转换的进制:");
scanf_s("%d%d%d", &num, &base, &newbase);
copynum = num;
while (num != 0)
{
newnum += (num % newbase) * pow(base,i);
num /= newbase;
i++;
}
printf("%d进制原进制为%d,转换%d后数为%d", copynum, base, newbase, newnum);
}
12.strcat()字符串连接
#include <stdio.h>
int main()
{
char s1[15]="123", s2[100]="345", j;//确保第一个字符串长度大于总和
int i;
strcat(s1, s2);
printf("%s",s1 );
}
13.输入年月,判断天数
#include <stdio.h>
int check(year)
{
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)
{
return 1;
}
else 0;
}
int main()
{
int year, month,date=31;
printf("请输入你的年份和月份,用空格间隔:");
scanf_s("%d%d", &year, &month);
if( month >= 1 && month <= 12)
{
if (month == 4 || month == 6 || month == 9 || month == 11)
{
date = 30;
}
else if (month == 2)
{
if (check(year) == 1)
{
date = 29;
}
else
{
date = 28;
}
}
}
else
{
printf("输入错误!");
return;
}
printf("%d年%d月有%d天", year, month, date);
}
14.1000以内的水仙花数
#include<stdio.h>
#include<math.h>
main()
{
int i,g,s,b;
printf("1000以内的水仙数:");
for (i = 100; i <= 999; i++)
{
b = i / 100;
s = i / 10 % 10;
g = i % 10;
if ((pow(b, 3) + pow(s, 3) + pow(g, 3)) == i)
{
printf("%d ", i);
}
}
15.一个字母向后移五位
#include<stdio.h>
main()
{
char ch1,ch2;
printf("请你输入一个英文字母:");
scanf_s("%c", &ch1);
ch2 = ch1;
if (ch1 >= 97 && ch1 <= 97 + 26)
{
if (ch1 <= 97 + 21)
{
ch1 = ch1 + 5;
}
else
{
ch1 = ch1 - 21;
}
}
else
{
printf("你的输入有误!");
}
printf("输入的%c向后第五个字母为:%c", ch2, ch1);
}
16.1000以内的完全数
#include<stdio.h>
main()
{
int sum = 0, i, j;
printf("1000以内的完全数:");
for (i = 0; i <= 1000; i++)
{
sum = 0;
for (j = 1; j <= i / 2; j++)
{
if (i % j == 0)
{
sum += j;
}
}
if (sum == i)
{
printf("%d ", i);
}
}
}
17.输出9*9乘法表
#include<stdio.h>
main()
{
int i, j;
printf("99乘法表:\n");
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= i; j++)
{
printf("%d*%d=%d ", j, i, i * j);
}
printf("\n");
}
}
18.输出1000以内完全数
#include<stdio.h>
main()
{
int i, j,sum;
printf("回文数:一个数的因子之和等于本身\n");
printf("1000以内完全数:");
for (i = 1; i <= 100; i++)
{
sum = 0;
for (j = 1; j <= i / 2; j++)
{
if (i % j == 0)
{
sum += j;
}
}
if (sum == i)
{
printf("%d ", i);
}
}
}
19.有1020个西瓜,第一天卖一半多2个,以后每天卖剩下的一半多2个,问几天后卖完(猴子吃桃)
#include<stdio.h>
main()
{
printf("问题:有1020个西瓜,第一天卖一半多2个,以后每天卖剩下的一半多2个,问几天后卖完:");
int n = 1020,t=0;
while (n > 0)
{
t++;
n = n / 2 - 2;
printf("第%d天,还剩%d个\n",t,n);
}
printf("\n %d天后卖完;", t);
}
20.输入英文句子,输出单词个数
#include<stdio.h>
main()
{
char ch[80];
int i,word=1,num=0;
gets(ch);
for (i = 0; ch[i] != '\0'; i++)
{
if (ch[i] == ' ')
{
word = 1;
}
else if (word == 1)
{
word = 0;
num++;
}
}
printf("\n这篇文章有%d个单词", num);
}
21.输入一段文章,大写首写字母
#include<stdio.h>
main()
{
int i,word=1;
char ch;
while ((ch = getchar()) != '\n')
{
if (ch == ' ')
{
word = 1;
}
else if (word == 1)
{
ch -= 32;
word = 0;
}
putchar(ch);
}
}