文章目录
-
- 对函数的理解
- 字符串长度
- scanf的返回值
- 多组输入问题
- 小结
对函数的理解
问题描述 : 求两个函数的较大值,先展示代码
#include <stdio.h>
求两个数的较大值
int Compare(int a, int b) //声明Compare函数
{
if (a > b)
{
return a;
}
else
{
return b;
}
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int num = Compare(a, b); //调用Compare函数
printf("%d\n", num);
return 0;
}
函数可以理解为一个工厂, 工厂Compare( )要把加工的东西给了num
而要把工厂做些什么声明在开头
return 加工的的结果给工厂Compare( ) 加工厂里要放加工的数据及类型
字符串长度
问题描述 : 用strlen() 计算字符串的长度
代码如下:
#include <stdio.h>
int main()
{
char arr[] = { 'b', 'i', 't' };
printf("%d\n", strlen(arr));
printf("%d\n", strlen("C:\test\test.c\code"));
return 0;
}
strlen( )是判断字符串的长度的
读到\0结束
但是arr类型不是字符串 所以读完之后还会继续读
长度不确定
scanf( )的返回值/EOF
问题描述:判断一个数为奇数还是偶数
#include <stdio.h>
int main()
{
int num = 0;
while (scanf("%d", &num) != EOF) //scanf的返回值不为-1,即取到东西了
{
if (num % 2 == 1)
printf("Odd\n");
else
printf("Even\n");
}
return 0;
}
!= EOF 为不等于负一的意思
scanf 的返回值是读取到了几个数
当scanf 没有读到数时就是EOF 值为-1
多组输入问题
问题描述:输入数>140,输出Genius
代码如下:
不符合多组输入:
#include <stdio.h>
int main() {
int a = 0;
int b = 0;
int num = 0;
scanf("%d%d\n", &a, &b);
num = a + b;
if (num >= 140) {
printf("Genius");
}
return 0;
}
多组输入:
#include <stdio.h>
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
if (n >= 140)
printf("Genius");
}
return 0;
}
用whlie( ) 的条件( )里加入 scanf 的返回值进行循环
取到东西后开始循环
n>140 循环结束
小结
有一些问题解决起来不必死绕,写的尽量简单才好