1.在C语言的scanf函数中,占位符之间是可以有空格的。如果在占位符之间有空格,则在输入时也需要输入相应的空格。例如,如果scanf函数中有"%d %f"这样的占位符,那么在输入时需要输入一个整数和一个浮点数,并且它们之间需要用空格隔开。
以下是一个示例代码:
#include <stdio.h>
int main() {
int num;
float f;
printf("请输入一个整数和一个浮点数,它们之间用空格隔开:");
scanf("%d %f", &num, &f);
printf("您输入的整数是:%d,浮点数是:%f\n", num, f);
return 0; }
如果在输入时不按照要求输入空格,则程序会一直等待用户输入,直到输入正确为止
2.涉及嵌套循环时的数据出错问题
题目:求出[a,b]区间内有多少个数数位之和为5的倍数
#include<stdio.h>
int number(int a,int b){
int cnt=0;
int i;
for(i=a;i<=b;i++){
int h=i; //因为i的值要在for循环结束后去对当前的i做++,所以在for循环时就得要一个新的变量 //去代替i做循环
int sum=0;
while(h>0){
int ret=h%10;
sum=sum+ret;
h=h/10;
}//循环结束后的i不是for循环初始的i,是经过while循环处理之后的i
if(sum%5==0){
cnt++;}
}
return cnt;}
int main(){
int a,b;
scanf("%d%d",&a,&b);
printf("%d",number(a,b));
return 0;
}
3.嵌套循环时在里面循环才用到的变量最好是在外面一层中定义
4.一个数的约数是能这个数能整除的数
5.n元人民币换成1元、2元、5元的零钱,请计算共有多少种兑换方法?(每张的个数都可以为0,也可以取到最大)
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
int i,j,k;
int cnt=0;
for(i=0;i<=n;i++){
for(j=0;j<=n/2;j++){
if(i+2*j>n)
break;
for(k=0;k<=n/5;k++){
if(i+2*j+5*k==n)
cnt++;
else if(i+2*j+5*k>n)
break;
}
}
}
printf("%d",cnt);
return 0;
}
6.关于做题时经常用到的关于字符串的函数
isalpha是一个C语言的标准库函数,用于判断一个字符是否为字母。它的原型定义在ctype.h头文件中,函数的返回值为int类型,如果参数是一个字母,则返回一个非零值;否则返回零。
isdigit是一个C语言的标准库函数,用于判断一个字符是否为数字。它的原型定义在ctype.h头文件中,函数的返回值为非零值(通常是1),如果参数是一个数字字符('0'到'9'之间的字符);否则返回0。
"gets(str);"是一个C语言函数,用于从标准输入流中读取一行字符串,并存储到str指向的字符数组中。#include<string.h>