1. 计算n以内所有正奇数的和 ? n值通过键盘输入
/*************************************************************************
> File Name: work1.c
> Author: sgc
> Description: n以内正奇数和
> Created Time: 2024年12月02日 星期一 17时43分52秒
************************************************************************/
#include <stdio.h>
int main(int argc,char *argv[])
{
// 定义一个变量,接收用户输入的n
int n;
printf("请输入:");
// 用户从键盘输入n
scanf("%d", &n);
// 定义一个变量,用于进行累加求和
int sum = 0;
// 判断用户是否输入负数
if( n < 0)
{
printf("%d以内的正奇数和是:0\n", n);
return 0;
}
// 根据用户输入的n来决定循环次数
for( int i = 1; i <= n; i++)
{
if( i % 2 != 0)
{
sum += i;
}
}
printf("%d以内的正奇数和是:%d\n", n, sum);
return 0;
}
运行截图:
)
2.计算 1 + 1/(2 * 3) + 1/(3 * 4) + …+ 1/(n * (n + 1)) = ?直到最后一相值小于0.00001为至。
/*************************************************************************
> File Name: work2.c
> Author: sgc
> Description: 计算 1 + 1/(2 * 3) + 1/(3 * 4) + ...+ 1/(n * (n + 1)) = ?直到最后一相值小于0.00001为至。
> Created Time: 2024年12月02日 星期一 18时33分58秒
************************************************************************/
#include <stdio.h>
int main(int argc,char *argv[])
{
// 定义一个变量,用于累加
double sum = 0;
// 循环变量,1单独计算,从二开始
double i = 2;
// 死循环一直进行累加
while(1)
{
// 判断该项数是否小于0.00001
if( 1/(i*(i+1)) < 0.00001 )
{
break;
}
// 对每一项进行累加
sum += 1/(i*(i+1));
// 每次循环自增1
i++;
}
printf("最后一项值小于%fl之前的和是:%lf\n", i, sum + 1.0 );
return 0;
}
运行截图:
3.计算1+1/2 - 1/3 + 1/4 - 1/5 …+1/n= ? n通过键盘输入
/*************************************************************************
> File Name: work3.c
> Author: sgc
> Description: 计算1+1/2 - 1/3 + 1/4 - 1/5 ...+1/n= ? n通过键盘输入(int k = -1)
> Created Time: 2024年12月02日 星期一 18时35分29秒
************************************************************************/
#include <stdio.h>
int main(int argc,char *argv[])
{
// 定义一个由用户输入的变量
int n;
printf("请输入:");
scanf("%d", &n);
// 定义一个变量,用于累加
double sum = 1;
for( int i = 2 ; i <= n; i++ )
{
// 判断奇偶,进行加正数和负数
if( i % 2 == 0 )
{
sum += 1.0/(double)i;
}
else
{
sum += -(1.0/(double)i);
}
}
printf("计算后的值是:%lf\n", sum);
return 0;
}
运行截图:
4.求n的阶乘
/*************************************************************************
> File Name: work4.c
> Author: sgc
> Description: 求n!
> Created Time: 2024年12月02日 星期一 18时35分36秒
************************************************************************/
#include <stdio.h>
int main(int argc,char *argv[])
{
// 创建一个变量,接收用户输入
int n;
printf("请输入:");
scanf("%d", &n);
// 创建一个变量接收累乘的值
int sum = 1;
// 对用户输入的数据进行校验
while(1)
{
// 小于等于0为非法数据,需要重新输入
if( n <= 0 )
{
printf("小于等于0为非法数据,需要重新输入:");
scanf("%d", &n);
}
else
{
break;
}
}
// 从到到小乘
for( n; n >= 1; n-- )
{
// 累乘
sum *= n;
}
printf("该数的阶乘是%d\n", sum);
return 0;
}
运行截图:
5.输出半径为1~10的圆面积,面积大于100时停止
/*************************************************************************
> File Name: work5.c
> Author: sgc
> Description: 输出半径为1~10的圆面积,面积大于100时停止
> Created Time: 2024年12月02日 星期一 18时35分45秒
************************************************************************/
#include <stdio.h>
// 定义一个字符常量
#define R 3.14
int main(int argc,char *argv[])
{
// 定义圆的半径,并且循环次数不超过10
for( float r = 0; r < 10; r++ )
{
// 如果面积小于100就打印该半径圆的面积,并且保留两位小数
if( R * r * r < 100) printf("半径为%.0f的圆的面积是%.2f\n", r, R*r*r);
}
return 0;
}
运行截图:
6.求输入的十个整数中正数的个数及其平均值
/*************************************************************************
> File Name: work6.c
> Author: sgc
> Description: 求输入的十个整数中正数的个数及其平均值
> Created Time: 2024年12月02日 星期一 18时35分54秒
************************************************************************/
#include <stdio.h>
int main(int argc,char *argv[])
{
// 定义 一个变量用于接收正数的个数
int a = 0;
// 定义一个变量,用来接收正数的累加值
float sum = 0;
printf("请输入10个数。\n");
for( int i = 1; i <= 10; i++ )
{
// 创建一个变量,用于接收用户输入的数
float b;
printf("请输入第%d个数:", i);
scanf("%f", &b);
if( b > 0 )
{
a++;
sum += b;
}
}
printf("正数的个数是%d,正数平均值是%.2f\n", a, sum/a);
return 0;
}
运行截图:
7.打印出100以内能整除7之外的的自然数
方法1:
/*************************************************************************
> File Name: work7.c
> Author: sgc
> Description: 打印出100以内能整除7之外的的自然数
> Created Time: 2024年12月02日 星期一 18时36分04秒
************************************************************************/
#include <stdio.h>
int main(int argc,char *argv[])
{
for( int i = 1; i <= 100; i++ ) if(i % 7 != 0) printf("%d ", i);
printf("\n");
return 0;
}
运行截图:
方法2:
/*************************************************************************
> File Name: work7.c
> Author: sgc
> Description: 打印出100以内能整除7之外的的自然数
> Created Time: 2024年12月02日 星期一 18时36分04秒
************************************************************************/
#include <stdio.h>
int main(int argc,char *argv[])
{
for( int i = 1; i <= 100; i++ ) i % 7 != 0 ? printf("%d ", i): printf("\n");
printf("\n");
return 0;
}
运行截图:
8.打印乘法表
/*************************************************************************
> File Name: work8.c
> Author: sgc
> Description: 打印乘法表
> Created Time: 2024年12月02日 星期一 18时36分12秒
************************************************************************/
#include <stdio.h>
int main(int argc,char *argv[])
{
for( int i = 1; i <= 9; i++ )
{
for( int j = 1; j <= i; j++)
{
printf("%d×%d=%d\t", j, i, i*j);
}
printf("\n");
}
return 0;
}
运行截图:
9.百钱买百鸡
/*************************************************************************
> File Name: work9.c
> Author: sgc
> Description: 百钱买百鸡
> Created Time: 2024年12月02日 星期一 18时36分20秒
************************************************************************/
#include <stdio.h>
int main(int argc,char *argv[])
{
// 接收各种鸡的个数15 9 1
// x是公鸡,y是母鸡,z是小鸡
int i , j, k = 0;
// 定义一个变量,用来接收鸡的个数
int n = 0;
// 总钱数和鸡的单价,均扩大三倍
// 通过遍历所有组合来找到想要的组合
// 外层循环遍历公鸡的个数
for( i = 0; i <= 20; i++ )
{
// 内层循环遍历母鸡的个数
for( j = 0 ; j <= 33; j++ )
{
//k -= j*9;
k = 300 - i*15 - j*9;
if( ((i + j + k) == 100) && (k%3 == 0) )
{
printf("%d只公鸡,%d只母鸡,%d只小鸡\n", i, j, k);
}
}
}
return 0;
}
运行截图:
10.从键盘上输入多个无符号整型数据,直到 0 结束 ,输出所输入数据中的最大值。
/*************************************************************************
> File Name: work10.c
> Author: sgc
> Description: 从键盘上输入多个无符号整型数据,直到 0 结束 ,输出所输入数据中的最大值。
> Created Time: 2024年12月02日 星期一 18时36分30秒
************************************************************************/
#include <stdio.h>
int main(int argc,char *argv[])
{
// 定义 一个变量用于接收正数的个数
unsigned int a;
// 定义一个变量,用来接收正数的累加值
unsigned int max = 0;
while(1)
{
printf("请输入:");
// 从控制台输入
scanf("%u", &a);
if( a != 0)
{
if( a > max )
{
max = a;
}
}
else
{
break;
}
}
printf("最大值是:%u\n", max);
return 0;
}
运行截图:
11.判断是否为回文数
/*************************************************************************
> File Name: work11.c
> Author: sgc
> Description: 判断一个数是不是回文数。
> Created Time: 2024年12月02日 星期一 23时57分21秒
************************************************************************/
#include <stdio.h>
int main(int argc,char *argv[])
{
// 接收用户输入
int a;
// 接收最终的数
int b;
// 接收最终的数的颠倒数
int c;
int d;
printf("请输入第1位数:");
scanf("%d", &a);
b = a;
c = a;
int i = 2;
while(1)
{
printf("请输入第%d位数:", i);
scanf("%d", &a);
b = b * 10 + a;
d = i;
while( d -1 )
{
a *= 10;
d--;
}
c += a ;
printf("请问还继续输入吗?输入00退出,输入11继续\n");
scanf("%d", &a);
if( a == 00 ) break;
i++;
}
if( b == c )
{
printf("%d是回文数\n", b);
}
else
{
printf("%d不是回文数\n", b);
}
return 0;
}
运行 截图:
优化后:
/*************************************************************************
> File Name: work11.c
> Author: sgc
> Description: 判断一个数是不是回文数。
> Created Time: 2024年12月02日 星期一 23时57分21秒
************************************************************************/
#include <stdio.h>
int main(int argc,char *argv[])
{
// 接收用户输入
int a;
// 接收最终的数
int b = 0;
// 接收最终的数的颠倒数
int c = 0;
int d = 0;
int j = 0;
printf("请输入:");
scanf("%d", &a);
int e = 0;
while(1)
{
if( a / 10 == 0 && a % 10 == 0 )
{
break;
}
else
{
int i = d, j;
e = a%10;
a /= 10;
c = c * 10 + e;
j = e;
while(i)
{
j *= 10;
i--;
}
b += j;
d++;
}
}
if( b == c )
{
printf("%d是回文数\n", b);
}
else
{
printf("%d不是回文数\n", b);
}
return 0;
}
运行截图: