敲一段程序,比较两个数的大小,总是只返回第一数字(不管你输入的这两个数字哪个大,都是返回第一个数,困扰了我一天呢,吼吼)。有这个程序让我学会了调试,设置断点,调出监视窗口来观察变量值的变化。还是发现不了,最后从百度上输入一句话,两个数比较大小,直接给出了答案。教训当你遇到什么样的错误。直接如实反映到百度上,大部分都有答案。不要浪费时间。还有在DOS窗口出现的错误,编译器不做检查,会阻挡其变量的输入。从符号错那里开始后面的执行就不接受。做事一定要认识,所有的符号字母,数字都是英文状态的。
形式参数不允许重复定义,就是函数传递过来的参数,你在这个函数里面再定义一遍一样的变量 int Max(int a,int b) {int a,b ,c;}这种是不对的不允许的。叫重复定义变量。可以用不用定义,即 int max(int a,int b){if (a>b)}等这样用就行。
scanf(''%d%d",&a,&b)在DOS界面输入时注意:两个数之间是空格。如果scanf("%d,%d",&a,&b)在控制台输入时记住两个数字之间是英文的逗号。
当在加法是sum可以不用先去赋初始值,但是在求阶乘即乘法时必须使用M=1,否则得出的数是错误的,是一个随机数。
数组从零开始,数组到现实生活中的映射比如映射到学号等等,要考虑到这个差值问题。
%这个符号两边的数字必须是整数
/两边如果都是整数,得出的数字就是整数部分,若有一部分是小数部分则得出的是小数部分。
困扰我两个小时的错误竟然是scanf("%d ",&a)这种错误在编译链接都没有错误,在执行输入数字之后敲回车无限回车一直下一行下一行,在调试按F10单步执行时卡在scanf函数总是卡在那里不能继续进行。原来scanf中是不能进行 这种低级错误,不能再发生。
自己想的最简单的判断一个数是不是素数
#include<stdio.h>
void main()
{
int i=2;
int p,flag=1;
printf("请输入一个大于3的整数:
");
scanf("%d",&p);
while(flag)
{
if(p%i==0)
{
printf("%d不是一个素数!
",p);
flag=0;
}
else
{
i=i+1;
if(i<p)flag=1;
else
{
printf("%d是一个素数!
",p);
flag=0;
}
}
}
}
用for循环最简单
#include<stdio.h>
void main()
{
int i,p;
scanf("%d",&p);
for(i=2;i<p;i++)
{
if(p%i==0)
printf("%d不是一个素数
",p);
else
if(i==p-1)
printf("%d是一个素数
",p);
}
}这样对吗?