DreamDragon_C言語の宿題5

1.空欄に記入します
1、26
2つの短い回答の質問
1.キーボードから10スコア(0から100の間)を入力し、最高スコアと最低スコアを削除した後、平均スコアを見つけ、小数点以下1桁を維持して結果を表示します。(プロンプトテキストはなく、結果はキャリッジリターンのない倍精度数になります)

方法1:配列を使用する

/*
时间:2021-3-30
作者:童话
环境:Win 10 、 Visual Studio 2019 
*/
double scores[10];			//	储存分数的数组
double max;					//	分数最大值的变量
double min;					//	分数最小值的变量
double sum;					//	分数求和变量
int i;						//	循环变量

/* 循环输入分数 */
for ( i = 0; i < 10; i++)
{
    
    
	scanf("%lf", &scores[i]);
}
/*	初始化最值为数组第一个元素	*/
max = min = scores[0];
for ( i = 1; i < 10; i++)
{
    
    
	if (scores[i] > max)
	{
    
    
		max = scores[i];
	}
	if (scores[i] < min)
	{
    
    
		min = scores[i];
	}
}
/*	初始化和为0	*/
sum = 0;
for (i = 0; i < 10; i++)
{
    
    
	sum += scores[i];
}
/*	累加的和减去最值	*/
sum -= (min + max);
/*输出	%.1f 表示输出一位小数*/
printf("%.1f", sum / 8);

方法2:

/*
时间:2021-3-30
作者:童话
环境:Win 10 、 Visual Studio 2019 
*/
double score;				//	分数
double max = 0;				//	最大值,初始化为分数范围的下限
double min = 100;			//	最小值,初始化为分数范围的上限
double sum = 0;				//	分数的和,初始化为0
int i;						//	循环变量

for (i = 0; i < 10; i++)
{
    
    
	/* 输入 */
	scanf("%lf", &score);
	/* 判断最值 */
	if (score > max)
	{
    
    
		max = score;
	}
	if (score < min)
	{
    
    
		min = score;
	}
	/* 累加求和 */
	sum += score;
}
/* 输出 */
printf("%.1f", (sum - max - min) / 8);
3.手順に関する質問
1.すべての水仙の数を見つけて、それらを合計するようにプログラムしてください。水仙の数は3桁の数字です。百の数字の立方体、十の数字の立方体、および一桁の立方体は、数字自体に合計する必要があります。例:153 = 1 1 1 + 5 5 5 + 3 3 3は、水仙の数です。(すべての水仙の数字とその合計を小さいものから大きいものまで1行で表示し、数字をスペースで区切ります。テキストとキャリッジリターンを表示しないでください)
/*
时间:2021-3-30
作者:童话
环境:Win 10 、 Visual Studio 2019 
*/
int i;			/*	循环变量	*/
int a;			/*	个位	*/
int b;			/*	十位	*/
int c;			/*	百位	*/
int sum = 0;	/*	和		*/
for (i = 100; i <= 999; i++)
{
    
    
	a = i % 10;
	b = i / 10 % 10;
	c = i / 100;

	if (i == a * a * a + b * b * b + c * c * c)
	{
    
    
		sum += i;
		printf("%d ", i);
	}
}
printf("%d", sum);
2、

会社の従業員の最低給与が500であるとすると、特定の月に受け取ったプロジェクトの利益(正の整数)と利益手数料の関係は次のようになります(測定単位:元)
利益≤1000手数料なし
1000 <利益≤2000コミッション10%;
2000 <利益≤5000コミッション15%;
5000 <利益≤10000コミッション20%;
10000 <利益コミッション25%。
特定の従業員の特定の月のプロジェクト利益を入力し、その従業員の実際の給与を出力する必要があります。(倍精度実数計算、結果はキャリッジリターンなしで小数点以下2桁を維持することを示しています)

2つのうちの1つを選択し、2番目をお勧めします

/*
时间:2021-3-30
作者:童话
环境:Win 10 、 Visual Studio 2019 
*/
int profit;
double com = 0;
scanf("%d", &profit);

if (profit <= 1000)
	com = 0;
else if (profit > 1000 && profit <= 2000)
	com = 0.1;
else if (profit > 2000 && profit <= 5000)
	com = 0.15;
else if (profit > 5000 && profit <= 10000)
	com = 0.2;
else if (profit > 10000)
	com = 0.25;

printf("%.2f", 500 + profit * com);
/*
时间:2021-3-30
作者:童话的女朋友
环境:Win 10 、 学习通
*/
int profit,r;
double x;
scanf("%d",&profit);
r=(profit-1)/1000;
switch(r)
{
    
    
	case 0:x=500;break;
    case 1:x=500+profit*0.1;break;
    case 2:
    case 3:
    case 4:x=500+profit*0.15;break;
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:x=500+profit*0.2;break;
    default:x=500+profit*0.25;break;
}
printf("%.2f",x);
3、

整数nを入力し、式
ここに画像の説明を挿入
計算して結果を表示します。(結果は倍精度の数値であり、小数点以下10桁を表示し、入力しないでください)

/*
时间:2021-3-30
作者:童话
环境:Win 10 、 Visual Studio 2019 
*/
int n;
int i, j;
long long t;	// int 和 long 不通过
double e = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
    
    
	t = 1;
	for (j = 1; j <= i; j++)
	{
    
    
		t *= j;
	}
	e += (1.0 / t);
}
printf("%.10f", e);

おすすめ

転載: blog.csdn.net/l2754283833/article/details/115323069