1.青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分(要求去掉一个最高分和一个最低分)
比较大小 用冒泡
冒泡排序
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
double a[10] = { 0 };//定义数组用来接收
int i = 0;
int j = 0;//用于冒泡排序
double t = 0;//用于交换大小值
double sum = 0;//8个评委总分
double average = 0;//八个评委平均分
printf("Enter 10 scores:");
for (i = 0; i <= 9;i++)
{
scanf("%lf", &a[i]);
}//输入十个分数
for (i = 0; i <= 8; i++)
{
for (j = 0;j <= 8 - i;j++)
{
if (a[j] > a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}//冒泡排序
for (i = 1;i <= 8;i++)
{
sum += a[i];
}//8个评委总分
average = sum / 8.0;//平均分
printf("%f", average);//输出
return 0;
}
方法二: 应用max()和min()
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int i = 0,j=0,t=0;
double a[10] = { 0 };
double sum = 0.0;
int max = 0, min = 0;
printf("请输入成绩:\n");
//循环输入
for (i = 0; i < 10; i++)
{
scanf("%lf", &a[i]);
}
//找出最小值和最大值
for (i = 1,j = 1;i < 10;i++,j++)
{
if (a[i] > a[max])
{
max = i;
}
if (a[j] < a[min])
{
min = j;
}
}
for (i = 0; i < 10; i++)
{
sum += a[i];//求和
}
t = sum - a[min] - a[max]; //在减去最大值和最小值
printf("%lf", t/8.0);
return 0;
}
2.输入两个正整数m和k,其中1<m<100000,1<k<5 ,判断m 能否被19整除,且恰好含有k个3,
如果满足条件,则输出YES,否则,输出NO。
例如,输入:43833 3,满足条件,输出YES。
如果输入:39331 3,尽管有3个3,但不能被19整除,也不满足条件,应输出NO。
方法一:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#if(0)
int main()
{
int m = 0, k = 0;
int i = 0, j = 0, t = 3;//循环变量
int flag = 1;
printf("请输入两个整数m和k\n");
scanf("%d%d", &m, &k);
for (i = 0; i < m; i++)
{
for (j = 1; j < k; j++)
{
if ((m % 19 == 0) && (t = k % 3 == 0) && (t = 3))//条件限制
{
flag = 1;//代表Yes
}
else
{
flag = 0;//代表No
}
}
}
if (flag == 1)
{
printf("Yes");
}
else
{
printf("No");
}
return 0;
}
方法二:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int m = 0;
int k = 0;
int i = 0;
int count = 0;
printf("m 和 k:");
scanf("%d%d", &m, &k);
if (m % 19 == 0)
{
while (m != 0)
{
if (m % 10 == 3)
{
count++;
}
m = m / 10;
}
if (count == k)
{
printf("YES");
}
else
{
printf("NO");
}
}
else
{
printf("NO");
}
}
3.输入一个字符串,将其中的元音字母(a、e、i、o、u)复制到另一个字符串,然后输出元音字母的字符串。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
char a[20];//存放原字符串
char b[20];//存放原音字符串
int i = 0;//计数
int j = 0;//计数
printf("请输入一个字符串:");
while ((a[i] = getchar()) != '\n')//输入源字符串
{
if (a[i] == 'a' || a[i] == 'e' || a[i] == 'i' || a[i] == 'o' || a[i] == 'u')
{ //判断是不是元音字母
b[j] = a[i]; //成立便存放在b数组
j++; //计数加一
}
i++;//计数加一
}
b[j] = '\0';//让b字符结束
printf("元音字母字符串是:");
puts(b);//输出b字符
return 0;
}
4.将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成
1:2:3的比例,试求出所有满足条件的三个三位数。
例如:三个三位数192,384,576满足以上条件。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
int a = 1;
int b= 1;
int c = 1;//定义a,b,c分别为三个三位数
int m[9] = { 0 };//定义数组
int i = 0;
int j = 0;//定义循环变量
for (a = 123; a < 333; a++)//定义123是1:2:3比例得来
{
b = 2 * a;
c = 3 * a;//使得a:b:c比例为1;2:3
m[0] = a % 10;//个
m[1] = a / 10 % 10;//十位
m[2] = a / 100;//百位
m[3] = b % 10;
m[4] = b / 10 % 10;
m[5] = b / 100;
m[6] = c % 10;
m[7] = c / 10 % 10;
m[8] = c / 100;
//用m[i]分别接收a,b,c的个、十、百位
for (i = 0;i < 8;i++)
{
for (j = i + 1;j < 9;j++)
{
if (m[i] == m[j] || m[i] == 0 || m[j] == 0)//不重复且不为0
{
break;
}
}
if (j < 9)//跳出外面这个循环之后防备
{
break;
}
}
if (i == 8 && j == 9)//跳出整个大循环之后结束且输出
{
printf("%d %d %d\n", a, b, c);
}
}//利用for循环找出九位数都不重复的a,b,c
return 0;
}
输入字符串
int main()
{
int a[80] = { '\0' };
scanf("%d", a);
printf("%d", a);
return 0;
}
或者
for (i = 0; i <= 9; i++)
{
scanf("%c", &a[i]);
}
计算字符串长度
int main()
{
char a[80] = { '\0' };
scanf("%s", a);
int len = strlen(a);
printf("%d", len);
return 0;
}