c语言 - 一些常见的错误

. 在if进行判断的时候,()中间一定是“==”,这个是判断,如果是“=”是赋值;
并且在判断一些符号的时候要加单引号‘’。

if(c=='*');//这里必须加单引号,再比如里面是一个字母x,表示这个变量x,若为'x'表示字母x。

关于ASCII的一些用法
数字是48-57的对应【0-9】
小写字母是97-122,大写是65-90,然后小写换大写就ascll加上32。例如

#include <stdio.h>
int main(){
	char  x='a',x1='1',x2=2;//单个字符一定要加单引号。
	printf("%c %c %c",x-32,x1,x2);//这里打印的结果是大写的A和1。2不会被打印出来。
}
		可以直接对一个char类型的变量进行加减,或者比较,这样的话都是比较的ascii码。
#include <stdio.h>
int main(){
	char   x1='1',x2='2';
	printf("%c",x1+x2);//这里打印出来的是小写的c(99),49+50==99.
	for(int i=0;i<99;i++){
		if(i==x1){
			printf("%d",i);//在这里会打印49,因为x1的ascll为49.
		}
	}
}

关于变量初始化的问题
这是一个pta的函数题,就奇奇怪怪的弄了一晚上。

#include <stdio.h>
#include <math.h>

int IsTheNumber ( const int N );//这个函数需要判断进入的N是否为完全平方数,并且N里面有相同的数字【144这种】

int main()//这一个主函数都可以不看,主要看下面
{
    int n1, n2, i, cnt;

    scanf("%d %d", &n1, &n2);
    cnt = 0;
    for ( i=n1; i<=n2; i++ ) {
        if ( IsTheNumber(i) )
            cnt++;
    }
    printf("cnt = %d\n", cnt);

    return 0;
}
int IsTheNumber ( const int N )
{
    int n,a[10],i=0,j,flag=1,m=N;//重点在这里,注意这里的n没有被初始化,所以每次进入这个函数的时候,n都是一个随机值。
    if((int)sqrt(m)==sqrt(m))//当m为完全平方数的时候就进来,
    {
        while(m!=0)
        {
            a[i]=m%10;
            m=m/10;
            i++;
            n=i;//倘若能进来,n就可以被赋予i的值。
        }
        
    }
    //但是注意,就算m不是一个完全平方数,依然会进行下面的一系列操作,意思是n没有被赋予i的值,是以一个随机值来进行下面操作。
        for(i=0;i<n;i++)
        {
            for(j=i+1;j<n;j++)
            {
                if(a[j]==a[i])
                {
                  return 1;
                }
            }
           //所以这样写的代码是错误的,可以在whlie循环里面增添一个flag判断语句,倘若m是完全平方数,flag=1,然后在出循环判断flag 。  

#include <stdio.h>
#include <stdlib.h>
int main(){
	int *p;
	p=(int *)malloc(sizeof(int));
	int *i;
	i=p;
	printf("%p %p",p,i);
}

这里打印出来的地址是一样的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值