81. 被5整除问题
-
问题描述:判断一个整数是否能5整除是一个挺简单的问题,懒惰的KiKi还是不想自己做,于是找到你帮他写代码,你就帮帮他吧。
-
输入描述:输入包括一个整数M(1≤M≤100,000)。
-
输出描述:输出包括一行,如果M可以被5整除就输出YES,否则输出NO(结果大小写敏感)。
-
示例1:
- 输入:10
- 输出:YES
-
示例2:
- 输入:9
- 输出:NO
-
代码实现:
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
if(0 == n % 5) printf("YES\n");
else printf("NO\n");
return 0;
}
82. 计算y的值
-
问题描述:已知一个函数y=f(x),当x < 0时,y = 1;当x = 0时,y = 0;当x > 0时,y = -1。
-
输入描述:一行,输入一个整数x。(-10000<x<10000)
-
输出描述:一行,输出y的值。
-
示例1:
- 输入:10
- 输出:-1
-
示例2:
- 输入:-10
- 输出:1
-
代码实现:
#include <stdio.h>
int main()
{
int x,y;
scanf("%d",&x);
if(x < 0) y = 1;
else if(x > 0) y = -1;
else y = 0;
printf("%d\n",y);
return 0;
}
83. 包含数字9的数
- 问题描述:今年是2019年,KiKi想知道1~2019中有多少个包含数字9的数。包含数字的数是指有某一位是“9”的数,例如“2019”、“199”等。
- 输入描述:无
- 输出描述:一行,一个整数,表示1~2019中共有多少个数包含数字9。
- 代码实现:
#include <stdio.h>
int main()
{
int count = 0;
for(int i = 1;i <= 2019;i++ )
{
int m = i;
while(m)
{
//不停地取出个十百千位上的数判断是否为9
if(9 == m % 10)
{
count++ ;
break;
}
m /= 10;
}
}
printf("%d\n",count);
return 0;
}
84. 奇偶统计
-
问题描述:任意输入一个正整数N,统计1~N之间奇数的个数和偶数的个数,并输出。
-
输入描述:一行,一个正整数N。(1≤N≤100,000)
-
输出描述:一行,1~N之间奇数的个数和偶数的个数,用空格分开。
-
示例:
- 输入:5
- 输出:3 2
-
代码实现:
#include <stdio.h>
int main()
{
int n,odd = 0,even = 0;
scanf("%d",&n);
for(int i = 1;i <= n;i++)
{
if(0 == i % 2) even++ ;//偶数
else odd++ ;//奇数
}
printf("%d %d\n",odd,even);
return 0;
}
85. 统计成绩
-
问题描述:输入n科成绩(浮点数表示),统计其中的最高分,最低分以及平均分。
-
数据范围:1≤n≤100 , 成绩使用百分制且不可能出现负数
-
输入描述:两行,
-
第1行,正整数n(1≤n≤100)
-
第2行,n科成绩(范围0.0~100.0),用空格分隔。
-
-
输出描述:输出一行,三个浮点数,分别表示,最高分,最低分以及平均分(小数点后保留2位),用空格分隔。
-
示例:
输入:
5
99.5 100.0 22.0 60.0 88.5
输出:
100.00 22.00 74.00
- 代码实现:
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
float score[n];
float sum = 0,max = 0,min = 100;
for(int i = 0;i < n;i++)
{
scanf("%f",&score[i]);
sum += score[i];
if(score[i] > max) max = score[i];
if(score[i] < min) min = score[i];
}
printf("%.2f %.2f %.2f\n",max,min,sum/n);
return 0;
}
86. 密码验证
- 问题描述:用户登录网站,通常需要注册,一般需要输入两遍密码。请编程判断输入的两次密码是否一致,一致输出“same”,不一致输出“different”
- 输入描述:每行有两个用空格分开的字符串,第一个为密码,第二个为重复密码。
- 输出描述:每组输出一个字符串(“same”或“different”)。
- 示例:
- 输入:abc abc
- 输出:same
- 解题思路:用两个字符串数组存储两次密码,然后用 strcmp 函数来判断是否相等。
- 代码实现:
#include <stdio.h>
#include <string.h>
#define MAX 100
int main()
{
char arr1[MAX];
char arr2[MAX];
scanf("%s %s",&arr1,&arr2);
if(!strcmp(arr1,arr2)) printf("same\n");
else printf("different\n");
return 0;
}
87. 矩阵计算
- 问题描述:输入NxM矩阵,矩阵元素均为整数,计算其中大于零的元素之和。
- 输入描述:第一行为N M(N: 矩阵行数;M: 矩阵列数,且M,N<=10),接下来的N行为矩阵各行。
- 输出描述:一行,其中大于零的元素之和。
- 示例:
输入:
3 3
2 3 4
-5 -9 -7
0 8 -4
输出:17
- 代码实现:
#include <stdio.h>
int main()
{
int n,m,num,sum = 0;
scanf("%d %d",&n,&m);
//获取n行m列的矩阵
for(int i = 0;i < n;i++)
{
for(int j = 0;j < m;j++)
{
scanf("%d",&num);
if(num > 0)
{
sum += num;
//计算矩阵中大于0的元素之和
}
}
}
printf("%d\n",sum);
return 0;
}
88. 成绩输入输出问题
- 问题描述:输入10科成绩,换行显示输入的10科成绩。
- 输入描述:一行,输入10科成绩(整数表示,范围0~100),用空格分隔。
- 输出描述:一行,输出输入的10科成绩,用空格分隔。
- 示例:
- 输入:98 100 99 97 95 99 98 97 96 100
- 输出:98 100 99 97 95 99 98 97 96 100
- 代码实现:
#include <stdio.h>
int main()
{
int score[10];
for(int i = 0;i < 10;i++)
{
scanf ("%d ",&score[i]);
printf("%d ", score[i]);
}
return 0;
}
89. 逆序输出
- 问题描述:输入10个整数,要求按输入时的逆序把这10个数打印出来。逆序输出,就是按照输入相反的顺序打印这10个数。
- 输入描述:一行,输入10个整数(范围-231~231-1),用空格分隔。
- 输出描述:一行,逆序输出输入的10个整数,用空格分隔。
- 示例:
- 输入:1 2 3 4 5 6 7 8 9 10
- 输出:10 9 8 7 6 5 4 3 2 1
- 代码实现:
#include <stdio.h>
int main()
{
int num[10];
for(int i = 0;i < 10;i++)
{
scanf("%d ",&num[i]);
}
for(int j = 9;j >= 0;j--)
{
printf("%d ",num[j]);
}
putchar('\n');
return 0;
}
90. 统计数据正负个数
- 问题描述:输入10个整数,分别统计输出正数、负数的个数。
- 输入描述:输入10个整数(范围-231~231-1),用空格分隔。
- 输出描述:两行,第一行正数个数,第二行负数个数,具体格式见样例。
- 示例:
输入:
-1 2 3 -6 7 8 -1 6 8 10
输出:
positive:7
negative:3
- 代码实现:
#include <stdio.h>
int main()
{
int arr[10];
int positive = 0,negative = 0;
for(int i = 0;i < 10;i++)
{
scanf("%d ",&arr[i]);
if(arr[i] > 0)
{
positive++ ;
}
else if(arr[i] < 0)
{
negative++ ;
}
}
printf("positive:%d\n",positive);
printf("negative:%d\n",negative);
return 0;
}