C语言考试题库汇总:大学生必备习题与答案详解 | 南锋

南锋

南奔万里空,脱死锋镝余

C语言考试题库汇总:大学生必备习题与答案详解

计算A-B的值

输入描述:

输入两个整数 a,b
输出描述描述:

输出a-b的结果

样式输入:7 4
样式输出:3

源代码:

1
2
3
4
5
6
7
8
#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d",a-b);
return 0;
}

找出最重的苹果

题目描述:

小明有n个苹果(n<20),每一个苹果都有一定的重量,请找出最重的苹果,并输出该苹果的重量

输入描述:

第一个整数是n,表示苹果的个数,接下来的n个整数是苹果的重量,每个整数之间用空格隔开

输出描述描述:

最重的苹果的重量

样式输入: 2 45 93
样式输出: 93
源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
int main()
{
int n,i,max,a[20];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
max=a[0];
for(i=1;i<n;i++)
if(a[i]>max)
max=a[i];
printf("%d",max);
return 0;
}

汽水瓶

题目描述:

有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,
方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?

输入描述:

输入为一个正整数n(1<=n<=100),表示空汽水瓶个数。

输出描述描述:

输出为一个正整数,表示可换汽水的瓶数。

样式输入: 10
样式输出: 5
源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
int main()
{
int n,sum=0;
scanf("%d",&n);
while(n)
{
sum+=n/3;
n=n%3+n/3;
if(n==2)
{
sum++;
break;
}
if(n==1)
break;
}
printf("%d",sum);
return 0;
}

密码破译

题目描述:
某组织欲破获一个外星人的密码,密码由一定长度的字串组成。此组织拥有一些破译此密码的长度不同的钥匙,若两个钥匙的长度之和恰好为此密码的长度,则此密码被成功破译。现在就请你编程找出能破译此密码的两个钥匙。
输入描述:
输入第一行为钥匙的个数N(1≤N≤5000)
输入第二行为密码的长度
以下N行为每个钥匙的长度
输出描述描述:
若无法找到破译此密码的钥匙,则输出仅1行0 。若找到两把破译的钥匙,则输出有两行,分别为两把钥匙的编号。若有多种破译方案,则只输出一种即可。
样式输入:

10
80
27
9
4
73
23
68
12
64
92
24

样式输出:

6
7

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>
int main()
{
int n,len,s[100],a=0,b=0,i,j;
scanf("%d",&n);
scanf("%d",&len);
for(i=0;i<n;i++)
scanf("%d",&s[i]);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(s[i]+s[j]==len)
{
a=i+1;
b=j+1;
break;
}
if(a!=0&&b!=0)
printf("%d\n%d",a,b);
else
printf("0");
return 0;
}

最大公约数

题目描述:
输入两个整数a,b(1≤a,b≤100000),请编写程序求出他们的最大公约数。
输入描述:
输入两个整数a b,用空格隔开
输出描述描述:
输出对应a,b的最大公约数
样式输入:

25 10

样式输出:

5

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
int main()
{
int min,a,b,i;
scanf("%d%d",&a,&b);
min=(a>b)?b:a;
for(i=min;i>=1;i--)
if(a%i==0&&b%i==0)
{
printf("%d",i);
break;
}
return 0;
}

字符串比对

题目描述:
有字符串a(长度<=100),b(长度<=10),计算b串在a串中出现的次数。
解题思路:
1、用gets语句从键盘输入两个字符串赋予a,b字符数组;
2、建立两层嵌套循环,外循环至a串结束标志为止,内循环至b串结束标志为止;
3、内循环中比对b串与a串的数据,满足条件时计数,否则break;
4、所有循环结束后输出计数值。
输入描述:
输入为两个字符串,第一个字符串长度小于100,第二个字符串长度小于10;
输出描述描述:
输出为一个正整数;
样式输入:

abcdefghijklmnababcdeabc
abc

样式输出:

3

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<stdio.h>
#include<string.h>
int main()
{
char a[100],b[10];
int i,j,len1,len2,s,sum=0,k;
gets(a);
gets(b);
len1=strlen(a);
len2=strlen(b);
for(i=0;i<(len1-len2+1);i++)
{
k=i;
s=0;
for(j=0;j<len2;j++)
if(b[j]==a[i])
{
s++;
i++;
}
i=k;
if(s==len2)
sum++;
}
printf("%d",sum);
return 0;
}

围圈报数

题目描述:
有n(n<=100)围成一圈,顺序排号(从1排到n)。
从第一个人开始报数(从1报到m(m<=9)),凡报到m的人退出圈子,问最后留下的是原来第几号的那位?
解题思路:
1、定义一个长度为100数组a,初始化为0;
2、接收键盘输入值n,m,数组a的前n-1个元素赋值为1~n;
3、建立两层嵌套循环,外循环至退出人数为n-1为止,
内循环中从0循环至n,将a数组中非0的数据逢m置零,同时记录退出人数;
4、循环全部结束后输出最后留下的一个a数组的非零元素的值。
输入描述:
输入为两个正整数,第一个<=100,第二个<=9;
输出描述描述:
输出为一个正整数;
样式输入:

100 3

样式输出:

91

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<stdio.h>
int main()
{
int a[100];
int n,m,i,sum=0,k=0;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
a[i]=i+1;
while(sum>=0)
{
for(i=0;i<n;i++)
if(a[i]!=0)
{
k++;
if(k==m)
{
a[i]=0;
k=0;
sum++;
}
}
if(sum==n-1)
break;
else
i=0;
}
for(i=n-1;i>=0;i--)
if(a[i]!=0)
printf("%d",a[i]);
return 0;
}

星期几?

题目描述:
编一个程序,已知今天是星期几,计算出n天后是星期几。要求使用枚举变量。
提示:枚举变量的赋值只能用枚举常量来表示,但是枚举常量均有一个整形数代表,可将改整形数存入枚举变量地址以实现外部赋值的目的。
如:enum day{Sun,Mon,Tue,Wed,Thu,Fri,Sat} d1; scanf("%d",&d1);
当键盘输入1时,相当于将d1赋值为Mon,即d1=Mon
枚举变量的输出,只能输出其代表的整形数,如需输出其对应的枚举常量,可借助字符串数组的方式处理;
如:char *p[]={“Sun”,“Mon”,“Tue”,"Wed","Thu","Fri","Sat"}; printf("%s",*(p+2));
其输出结果为:Tue
输入描述:
输入为两个正整数,第一个数n(n<=6)表示今天是星期几,第二个数m(m<=1000),表示求m天后是星期几;
输出描述描述:
输出为一个长度为3的字符串,表示星期几的名称;
样式输入:

1 4

样式输出:

Fri

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
int main()
{
int m;
char p[][4]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
enum day{Sun,Mon,Tue,Wed,Thu,Fri,Sat} n;
scanf("%d%d",&n,&m);
m%=7;
n+=m;
n%=7;
printf("%s",*(p+n));
return 0;
}

整数各位取奇数

题目描述:
将一个整数中的每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为:87653142时,t中的数为:7531。
(知识点:控制语句、函数、指针)
输入描述:
输入数据为一个不大于100000000的整形数;
输出描述描述:
输出数据为一个不大于100000000的整形数;
样式输入:

987654321

样式输出:

97531

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h>
int main()
{
int s,i,k=0;
int a[100];
scanf("%d",&s);
while(s)
{
if((s%10)%2!=0)
a[k++]=s%10;
s/=10;
}
for(i=k-1;i>=0;i--)
printf("%d",a[i]);
return 0;
}

四位反序数

题目描述:
设N是一个四位数,它的n倍恰好是其反序数(例如:123的反序数是321),
编程,输出一个满足条件的N。(知识点:控制语句)
输入描述:
输入为一个整形数n(2<=n<=9)
输出描述描述:
输出为一个四位数的整形数
样式输入:

9

样式输出:

1089

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<stdio.h>
int main()
{
int n,i,k,a,b,sum;
scanf("%d",&n);
for(i=1000;i<10000;i++)
{
sum=i;
b=0;
k=i*n;
while(sum)
{
a=sum%10;
b=b*10+a;
sum/=10;
}
if(k==b)
{
printf("%d",i);
break;
}
}
return 0;
}

字母翻译

题目描述:
编程: 求解下列式中各字母代表的数字并输出
PEAR-ARA=PEA
(知识点:控制语句)
输入描述:

输出描述描述:
输出为四个数字,以空格分开,依次为代表P E A R 的数字;
样式输入:

样式输出:

8 7 6 5

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
int main()
{
int p,e,a,r,x,y,z;
for(p=1;p<=9;p++)
for(e=0;e<=9;e++)
for(a=1;a<=9;a++)
for(r=0;r<=9;r++)
{
x=p*1000+e*100+a*10+r;
y=a*100+r*10+a;
z=p*100+e*10+a;
if(x-y==z)
printf("%d %d %d %d",p,e,a,r);
}
return 0;
}

字符串复制

题目描述:
有一个字符串,包括n个字符。写一个函数,将此字符串从第m个字符开始的全部字符复制成另一个字符串。要求在主函数输入字符串及m值并输出复制结果。
(知识点:控制语句、字符串、指针)
输入描述:
输入为一个字符串(长度小于80)及一个整形数(小于字符串的实际长度)
输出描述描述:
输出为一个字符串
样式输入:

abcdefghijklmnopqrst
8

样式输出:

hijklmnopqrst

源代码

1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>
int main()
{
char a[80];
char *p;
int n;
gets(a);
scanf("%d",&n);
p=a+n-1;
printf("%s",p);
return 0;
}

二维字符数组转换

题目描述:
编写函数fun, 函数的功能是: 将M行N列的二维数组中的字符数据, 按列的 顺序依次放到一个字符串中。
例如, 二维数组中的数据为:
W W W W
S S S S
H H H H
则字符串中的内容应是: WSHWSHWSH。
(知识点:数组、指针)
输入描述:
输入为一个3行4列二维字符数组数据
输出描述描述:
输出为一个长度为12的字符数组;
样式输入:

A B C D
E F G H
I J K L

样式输出:

AEIBFJCGKDHL

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>
void fun(char a[3][5])
{
int i,j,k=0;
char s[13];
for(i=0;i<4;i++)
for(j=0;j<3;j++)
printf("%c",a[j][i]);
}
int main()
{
int i,j;
char a[3][5],*p;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
scanf("%c",&a[i][j]);
getchar();
}
fun(a);
return 0;
}

年龄分组

题目描述:
统计各年龄段的人数。N(N=20)个年龄通过键盘输入,并放在age数组中;
要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,
把20至29岁年龄段的人数放在d[2]中, 其余依此类推,
把100岁 (含100)以上年龄的人数都放在d[10]中。依次输出d[0]至d[10]。
输入描述:
输入为20个正整数;
输出描述描述:
输出为11个正整数;
样式输入:

1 2 11 12 22 23 33 34 44 45 55 56 66 67 68 88 99 100 101 102

样式输出:

2 2 2 2 2 2 3 0 1 1 3

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include<stdio.h>
int main()
{
int a[20];
int d[11]={0};
int i;
for(i=0;i<20;i++)
scanf("%d",&a[i]);
for(i=0;i<20;i++)
{
if(a[i]>=0 && a[i]<=9)
d[0]++;
else if(a[i]>=10 && a[i]<=19)
d[1]++;
else if(a[i]>=20 && a[i]<=29)
d[2]++;
else if(a[i]>=30 && a[i]<=39)
d[3]++;
else if(a[i]>=40 && a[i]<=49)
d[4]++;
else if(a[i]>=50 && a[i]<=59)
d[5]++;
else if(a[i]>=60 && a[i]<=69)
d[6]++;
else if(a[i]>=70 && a[i]<=79)
d[7]++;
else if(a[i]>=80 && a[i]<=89)
d[8]++;
else if(a[i]>=90 && a[i]<=99)
d[9]++;
else
d[10]++;
}
for(i=0;i<10;i++)
printf("%d ",d[i]);
printf("%d",d[10]);
return 0;
}

分数数列求和

题目描述:
有一个分数数列为:
2/1,3/2,4/3,5/4……
求出这个数列的前n(n<=20)项之和,保留小数点后4位。
输入描述:
输入一个整数n(n<=20);
输出描述描述:
输出为一个小数,保留小数点后4位;
样式输入:

5

样式输出:

7.2833

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h>
int main()
{
int i,k;
double m,n,a[20];
scanf("%d",&k);
a[0]=2;
for(i=1,m=3,n=2;i<20;i++)
{
a[i]=a[i-1]+m/n;
m++;
n++;
}
printf("%.4lf",a[k-1]);
return 0;
}

杨辉三角形

题目描述:
输出n行杨辉三角形,如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
……………………
输入描述:
输入为一个正整数n<n<=10);
输出描述描述:
输出为n行杨辉三角形;
样式输入:

3

样式输出:

1
1 1
1 2 1

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include<stdio.h>
int main()
{
int a[10][10];
int i,j,n;
scanf("%d",&n);
if(n>1)
{
for(i=0;i<n-1;i++)
{
a[i][0]=1;
printf("%d",a[i][0]);
for(j=1;j<i;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
printf(" %d",a[i][j]);
}
if(i>0)
{
a[i][i]=1;
printf(" %d",a[i][i]);
}
printf("\n");
}
a[n-1][0]=1;
printf("%d ",a[n-1][0]);
for(j=1;j<n-1;j++)
{
a[n-1][j]=a[n-2][j-1]+a[n-2][j];
printf("%d ",a[n-1][j]);
}
a[n-1][n-1]=1;
printf("%d",a[n-1][n-1]);
}
else
printf("1");
return 0;
}

鞍点

题目描述:
找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。
输入描述:
输入一个3行3列的二维整形数组;
输出描述描述:
如果鞍点存在,输出其坐标;否则输出-1;如:鞍点位于第一行第三列,则输出1 3;
样式输入:

1 2 3
4 5 6
7 8 9

样式输出:

1 3

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include<stdio.h>
int main()
{
int a[3][3],i,j,max,min,k1,k2,k,sum=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
{
max=a[i][0];
k1=0;
for(j=1;j<3;j++)
if(max<a[i][j])
{
max=a[i][j];
k1=j;
}
min=a[0][k1];
k2=0;
for(k=1;k<3;k++)
if(min>a[k][k1])
{
min=a[k][k1];
k2=k;
}
if(k2==i)
{
sum++;
printf("%d %d",i+1,k1+1);
}
}
if(sum==0)
printf("-1");
return 0;
}

最长单词

题目描述:
输入一个字符串,将其中最长的单词输出(不含标点符号);如果最长单词的数量有多个,输出第一个即可;
注:大写字母的ascii码从65~90,小写字母的ascii码从97~122
输入描述:
输入为长度小于100的字符串;
输出描述描述:
输出为长度小于100的字符串;
样式输入:

Helo!I am chinese,nice to meet you!

样式输出:

chinese

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<stdio.h>
#include<string.h>
int main()
{
int i,j=1,len,len1,len2,k=0,max=0,s[100]={0};
char a[100],b[100],c[100];
gets(a);
len=strlen(a);
for(i=0;i<len;i++)
{
if((a[i]<='z' && a[i]>='a') || (a[i]>='A' && a[i]<='Z'))
{
s[j]++;
b[k]=a[i];
k++;
}
else
{
b[k]='\0';
if(s[j]>max)
{
max=s[j];
strcpy(c,b);
}
k=0;
j++;
}
}
len2=strlen(c);
for(i=0;i<len2;i++)
printf("%c",c[i]);
return 0;
}

查找不同的木棍

题目描述:
小明的收集了一些木棍,并测量了每个木棍的长度,记录下来.假设小明有奇数根木棍,只有一个木棍找不到跟它一样长的另外一根木棍.请编程找出这个没有相同长度的木棍,输出它的长度.
知识点: 排序;或者用异或操作 0 异或x=x;x异或x=0;a异或b异或c=a异或(b异或c)=(a异或b)异或c=a异或c异或b
输入描述:
输入包含一个奇数n(n<30000),然后是n个整数,表示每个木棍的长度,并保证只有一根木棍找不到跟他一样长的木棍.
输出描述描述:
输出符合条件的木棍的长度
样式输入:

5 22 76 87 76 22

样式输出:

87

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<stdio.h>
int main()
{
int a[30000],i,n,j,k,sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
if(a[i]==0)
k=0;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]==a[j])
{
a[i]=0;
a[j]=0;
}
for(i=0;i<n;i++)
if(a[i]!=0)
{
sum++;
printf("%d",a[i]);
}
if(sum==0)
printf("0");
return 0;
}

最长上升子序列数(闫博钊)

题目描述:
一个数的序列bi,当b1<b2<...<bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1,a2,…,aN),我们可以得到一些上升的子序列(ai1,ai2,…,aiK),这里1<=i1<i2<...<iK<=N。比如,对于序列(1,7,3,5,9,4,8),有它的一些上升子序列,如(1,7),(3,4,8)等等。这些子序列中最长的长度是4,比如子序列(1,3,5,8)
你的任务,就是对于给定的序列,求出最长上升子序列的长度。
输入描述:
第一行输入序列的长度N(1<=N<=1000)。第二行给出序列中的N个整数,这些整数的取值范围都在0到10000。
输出描述描述:
输出最长上升子序列的长度
样式输入:

7
1 7 3 5 9 4 8

样式输出:

4

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
int main()
{
int n,i,j,max=0;
int a[1000],b[1000];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
b[i]=1;
for(i=n-1;i>=1;i--)
for(j=i-1;j>=0;j--)
if(a[j]<a[i]&&b[j]==b[i])
b[j]++;
for(i=0;i<n;i++)
if(max<b[i])
max=b[i];
printf("%d",max);
return 0;
}

求反顺序数

题目描述:
输入一个正整数,要求以相反的顺序输出该数。例如输入12345,输出位54321
输入描述:
输入一个整数n,
输出描述描述:
输出一个反顺序的数
样式输入:

123456

样式输出:

654321

源代码

1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>
#include<string.h>
int main()
{
int len,i;
char a[100];
scanf("%s",a);
len=strlen(a);
for(i=len-1;i>=0;i--)
printf("%c",a[i]);
return 0;
}

求三个整数的最大公约数

题目描述:
对任意三个整数,求它们的最大公约数
输入描述:
三个整数a,b,c
输出描述描述:
a,b,c的最大公约数
样式输入:

4 24 32

样式输出:

4

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<stdio.h>
int main()
{
int a,b,c,max,i,k=0,m=0,n=0;
int A[100]={1},B[100],C[100];
scanf("%d%d%d",&a,&b,&c);
for(i=1;i<=a;i++)
if(a%i==0)
{
A[k]=i;
k++;
}
for(i=0;i<k;i++)
if(b%A[i]==0)
{
B[m]=A[i];
m++;
}
for(i=0;i<m;i++)
if(c%B[i]==0)
{
C[n]=B[i];
n++;
}
printf("%d",C[n-1]);
return 0;
}

第几天

题目描述:
输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,
特殊情况,闰年且输入月份大于3时需考虑多加一天。
输入描述:
输入为三个整数,分别表示年、月、日;
输出描述描述:
输出为一个整数,表示输入的年月日为当年的第几天;
样式输入:

2010 1 1

样式输出:

1

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include<stdio.h>
int main()
{
int yy,m,dd,n;
scanf("%d%d%d",&yy,&m,&dd);
if(m==1)
n=dd;
else if(m==2)
n=31+dd;
else if(m==3)
n=59+dd;
else if(m==4)
n=90+dd;
else if(m==5)
n=120+dd;
else if(m==6)
n=151+dd;
else if(m==7)
n=181+dd;
else if(m==8)
n=212+dd;
else if(m==9)
n=243+dd;
else if(m==10)
n=273+dd;
else if(m==11)
n=304+dd;
else
n=334+dd;
if(yy%400==0 || (yy%4==0 && yy%100!=0))
if(m>2)
n++;
printf("%d",n);
return 0;
}

发放奖金

题目描述:
某车间按工人加工零件的数量发放奖金,奖金分为五个等级:每月加工零件数N < 100者奖金为10元;100 < = N < 110者奖金为30元;110 < = N <120 者奖金为50元;120 < = N <130 者奖金为70元;N > 130者奖金为80元。 请编程,由键盘输入加工零件数量,显示应发奖金数。
输入描述:
输入10个加工零件数量,数量小于400.
输出描述描述:
对每一个加工零件个数,输出应发奖金数,每个奖金数之间用空格隔开
样式输入:

85 85 85 85 85 85 85 85 85 85

样式输出:

10 10 10 10 10 10 10 10 10 10

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
int main()
{
int a[10],i,b[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{
if(a[i]<100)
b[i]=10;
else if(a[i]>=100&&a[i]<110)
b[i]=30;
else if(a[i]>=110&&a[i]<120)
b[i]=50;
else if(a[i]>=120&&a[i]<130)
b[i]=70;
else
b[i]=80;
}
for(i=0;i<9;i++)
printf("%d ",b[i]);
printf("%d",b[9]);
return 0;
}

更多

更多题库链接 ,
+