三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

C语言经典100题(手把手 编程)

C语言经典100题(手把手 编程)

每日更新若干题代码

//P1程序代码

#include

#pragma warning(disable : 4996)

int main()

/*我的这个思想是边判断,变输出,思想就是每个位都能输出1234四个数,但是必须每位不一样,在进行位赋值之后判断是否一样,如果一样,那么使用continue过掉这个一样的数值,进行自加那么久两位就不会一样了。*/

/*老师的思想更简单,就是所有赋值完之后再判断每个位是否一样,这样就等于将所有数据进行判断筛选出每个位不一样的进行输出,也是另一种思路,而且老师的这个长远看来适合复杂的数据*/

/*总结:编程模块化很重要,一个地方能处理的话就不要两个地方去处理。*/

int g, s, b;//分别是百位十位个位

int T;//总数

for (g = 1; g < 5; g++)

for (s = 1; s

if (s == g)

continue;

for ( b = 1; b < 5 ; b++)

if (b == g || b == s)

continue;

T = g * 100 + s * 10 + b * 1;

printf("%d\n", T);

return 0;

///////////////////////////////////////////////////////////////////////

//P2程序代码

#include

#pragma warning(disable : 4996)

void main()

//***************************定义***********************************

typedef long float lf; // 定义了一个long float类型的别名lf

lf Percent

10000

, Rank

10000

; //分红比例,档位数值

lf benificial, bonus = 0.00; //利润,分红

int rank = 0, times; //第几个档位。需要几档

lf range

10000

; //各个档位区间范围

//*****************************档位设置******************************

printf("请将公司利润分为若干档位,不同档位同时设置不同分红比例\n");

printf("请设置若干个档位:");

scanf("%d", ×); // 输入档位数

if (times > 10000)

printf("请将档位控制在二到一万以内!请重新运行程序!");

exit(1);

printf("*********************************************\n");

printf("正在进行档位设置:\n");

Rank

= 0;

// 设置各个档位的数值和分红比例

if (times > 1)

for (size_t i = 1; i < times; i++)

printf("第%d个档位的数值为:%lf至", i, Rank

i - 1

);

scanf("%lf", &Rank

); // 输入档位的数值

printf("第%d档位的范围是大于%lf\n", times, Rank

times - 1

);

for (size_t k = 0; k < times; k++)

printf("第%d个档位的分红比例为:", k + 1);

scanf("%lf", &Percent

); // 输入档位的分红比例

Percent

= (Percent

/ 100.0); // 将分红比例转换为小数形式

else

printf("请输入合适的档位!");

//***********************************主程序********************************

while (1)

printf("请输入本月公司利润(输入负数或0可退出):\n");

scanf("%lf", &benificial); // 输入本月公司利润

if (benificial Rank

rank++;

else

printf("当前利润值有%d档", t + 1);

// 计算各个档位区间的长度

for (size_t u = 0; u < rank - 1; u++)

range

= Rank

u + 1

- Rank

// 计算分红金额

for (size_t j = 0; j < times; j++)

bonus = (bonus + (range

* Percent

));

if (j == rank - 2)

bonus = (bonus + (benificial - Rank

rank - 1

) * Percent

rank - 1

);

break;

else

printf("应当分红:%f\n", bonus);

bonus = 0;

rank = 0;

return 0;

//////////////////////////////////////////////////////////////////////

//第三天习题的作业代码 ,有不理解可以私信

#include

/*

整体思路,先由x做等式联立第一第二行等式。计算出m与n的关系。再由第一行平方数变量n进行穷举,

得出对应x,再将x带入等式二进行计算,符合条件即为可能答案

*/

int main()

int arr_m

169

, arr_n

169

; // 定义数组存储m和n的值

int times = 0; // 计数器

int Multi_m, Multi_n; // 存储m和n的临时变量

float num; // 存储结果的变量

// 遍历m和n的取值

for (size_t m = 0; m < 169; m++)

for (size_t n = 0; n < 169; n++)

// 判断 m+n 与 m-n 的乘积是否等于 168

if (((m + n) * (m - n)) == 168)

printf("m与n的值分别为:%d,%d\n", m, n);

arr_m

times

= m; // 将m存入数组

arr_n

times

= n; // 将n存入数组

times++; // 计数器加一

else

; // 不满足条件时不进行额外操作

// 遍历符合条件的m和n的组合

for (size_t i = 0; i < times; i++)

Multi_n = arr_n

; // 取出n的值

Multi_m = arr_m

; // 取出m的值

num = ((Multi_n * Multi_n) - 100); // 计算方程式的结果

if ((num + 100 + 168) == (Multi_m * Multi_m))

printf("方程式的结果为%f\n", num); // 输出符合条件的结果

else

; // 不满足条件时不进行额外操作

return 0;

///////////////////////////////////////////////////////////////////

P4代码示例:

#include

#pragma warning(disable : 4996)

int calculateDays(int year, int month, int day)

int sum = 0;

int isLeapYear = (((year % 4) == 0) && ((year % 100) != 0) || ((year % 400) == 0));

int arr_day

= { 31, isLeapYear ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

for (int i = 1; i < month; i++) {

sum += arr_day

i - 1

return sum + day;

int main()

int year, month, day;

while (1) {

printf("请输入年月日以计算多少天(以逗号进行分割):");

scanf("%d,%d,%d", &year, &month, &day);

// 验证日期的有效性

if (year < 0 || month < 1 || month > 12 || day < 1 || day > 31) {

printf("请输入正确的日期!\n");

continue;

int totalDays = calculateDays(year, month, day);

if (totalDays > 0) {

printf("截至%d年%d月%d日共有%d天\n", year, month, day, totalDays);

else {

printf("计算过程中发生错误,请重新输入日期!\n");

char choice;

printf("是否继续计算?(Y/N): ");

scanf(" %c", &choice);

if (choice == 'N' || choice == 'n') {

break;

system("cls");

return 0;

/////////////////////////////////////////////////////////////////

P5程序代码:

#include

#pragma warning(disable : 4996)

int main()

int x, y, z;

int minValue, midValue, maxValue;

printf("请输入三个数字,以空格分隔:");

scanf("%d %d %d", &x, &y, &z);

minValue = x;

midValue = y;

maxValue = z;

// 交换最小值和中间值

if (minValue > midValue) {

int temp = minValue;

minValue = midValue;

midValue = temp;

// 交换中间值和最大值

if (midValue > maxValue) {

int temp = midValue;

midValue = maxValue;

maxValue = temp;

// 再次检查最小值和中间值的顺序

if (minValue > midValue) {

int temp = minValue;

minValue = midValue;

midValue = temp;

printf("数值排序是:%d, %d, %d", minValue, midValue, maxValue);

return 0;

/////////////////////////////////////////////////////////////////

P6代码:

#include

int main()

// 打印菱形的上半部分

for (size_t i = 0; i < 5; i++)

for (size_t j = i; j < 5; j++)

printf(" "); // 打印空格

if (i == 0 && j == 4)

printf("* * * * * * "); // 在第一行最后一个位置打印星号序列

printf("*\n"); // 每行结束打印一个星号和换行符

// 打印菱形的下半部分

for (size_t i = 0; i < 6; i++)

for (size_t j = i; j > 0; j--)

printf(" "); // 打印空格

if (i == 5 && j == 1)

printf("* * * * * * "); // 在最后一行第一个位置打印星号序列

printf("*\n"); // 每行结束打印一个星号和换行符

return 0;

///////////////////////////////////////////////////////////

P8九九乘法表

#include

int main()

int multi;

for (size_t i = 1; i < 10; i++)

for (size_t j = 1; j < 10; j++)

multi = i * j;

printf("%d*%d=%d\n", i, j,multi);

return 0;

///////////////////////////////////////////////////////////////////////

P11兔子生崽

#include

/*程序首先定义了一个整数变量month表示月份,初始化为40,表示计算40个月的兔子数量。

然后定义一个长度为40的整型数组arrnum,初始值为{1,1},表示第一个月和第二个月兔子的数量。

接下来使用for循环遍历每一个月,利用斐波那契数列的规律计算兔子的数量。在每个循环中,

首先判断当前的月份是否小于2,若是则输出对应月份的兔子数量,并将sign加1。然后,在第三个月及之后的月份,

通过上两个月兔子的数量相加得到当前月份的兔子数量,并将结果存入arrnum数组中,同时输出对应月份的兔子数量。

最后,程序返回0,表示程序正常结束。*/

int main()

int rabbits;

int month=40;

int arrnum

40

= { 1,1 };

int sign=0;

for (size_t i = 0; i < month; i++)

if (sign < 2)

printf("第%d个月的兔子数量是:%d\n", i + 1, arrnum

);

sign++;

if (i>=2)

rabbits = (arrnum

i - 1

+ arrnum

i - 2

);

arrnum

= rabbits;

printf("第%d个月的兔子数量是:%d\n", i+1,rabbits);

return 0;

/////////////////////////////////////////////////////////////

P9判断素数

#include

#pragma warning(disable : 4996)

int main()

← 返回列表