在编程中,我们发现在VS中使用scanf会报错,而如何解决报错并使用scanf是我们学习c语言的首要任务。
我们可以掌握两个简单的方法:
方法一:可以将scanf替换成scanf_s
Visual Studio推荐使用更安全的scanf_s。但这种方法仅适用于VS,不推荐跨平台使用。
方法2:添加预处理宏
在代码顶部添加宏定义#define _CRT_SECURE_NO_WARNINGS 。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
printf("%d\n", n);
return 0;
}
现在我们解决了scanf的报错问题,便可以进行练习了。
1.计算带余除法
给定两个整数a和b,计算a除以b的整数商和余数。
输入描述:
一行,包括两个整数a和b,依次为被除数和除数(不为零),中间用空格隔开。
输出描述:
一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。
其中, / 是除法运算符、%是取余运算符
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a, b;
scanf("%d %d", &a, &b);
int m, n;
m = a / b;
n = a % b;
printf("%d %d\n", m, n);
return 0;
}
运行结果:当被除数为10,除数为3时,结果如下
2.你是天才吗?
据说智商140以上者称为天才,KiKi想知道他自己是不是天才,请帮他编程判断。输入一个整数表示一个人的智商,如果大于等于140,则表明他是一个天才,输出“Genius”。
输入描述:
多组输入,每行输入包括一个整数表示的智商。
输出描述:
针对每行输入,输出“Genius”。
运行结果:输入160时输出Genius,输入130时无输出
3.判断两个数的大小关系
KiKi想知道从键盘输入的两个数的大小关系,请编程实现。
输入描述:
题目有多组输入数据,每一行输入两个整数,用空格分隔。
输出描述:
针对每行输入,输出两个整数及其大小关系,数字和关系运算符之间没有空格。
int main()
{
int a = 0;
int b = 0;
int i = 0;
while((scanf("%d %d",&a,&b))!=EOF)
{
if (a == b)
{
printf("%d=%d\n", a, b);
}
else if (a > b)
{
printf("%d>%d\n", a, b);
}
else if (a < b)
{
printf("%d<%d\n", a, b);
}
}
return 0;
}
运行结果:输入多组数据,结果不同(包含<,>,=)
4.被5整除问题
判断一个整数是否能5整除是一个挺简单的问题,懒惰的KiKi还是不想自己做,于是找到你帮他写代码,你就帮帮他吧。
输入描述:
输入包括一个整数M(1≤M≤100,000)。
输出描述:
输出包括一行,如果M可以被5整除就输出YES,否则输出NO(结果大小写敏感)。
int main()
{
int a;
scanf("%d", &a);
if (a % 5 == 0)
printf("YES");
else
printf("NO");
return 0;
}
运行结果:
5.线段图案
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的线段图案。
输入描述:
多组输入,一个整数(1~100),表示线段长度,即“*”的数量。
输出描述:
针对每行输入,输出占一行,用“*”组成的对应长度的线段。
int main()
{
int n = 0;
int i,j;
while((scanf("%d",&n))!=EOF)
{
for (i = 1; i <= n; i++)
{
printf("*");
}
printf("\n");
}
return 0;
}
运行结果:
6.打印3的倍数的数
int main()
{
int i = 0;
for (i = 1; i <= 100; i++)
{
if (i % 3 == 0)
{
printf("%d ", i);
}
}
return 0;
}
运行结果:
7.从大到小输出
写代码将三个整数数按从大到小输出。
输入:2 3 1
输出:3 2 1
int main()
{
int a, b, c;
int temp;
scanf("%d %d %d", &a, &b, &c);
if (a < b)
{
temp = a;
a = b;
b = temp;
}
if (a < c)
{
temp = a;
a = c;
c = temp;
}
if (b < c)
{
temp = b;
b = c;
c = temp;
}
printf("从大到小:%d %d %d\n", a, b, c);
return 0;
}
运行结果: