11.7-11.14C语言学习总结(1)

 long long int在C语言中可以简写为long long,能支持的整数范围是-2^63到2^63-1。实在不行,可以加个unsinged在前面。C语言定义一个int类型时,默认是有符号数,关键字signed常省略。输出符号为lld

 总体思路:定义一个字符数组,用do while输入()然后分别从是否是数字(0-9ascii码为48到57),有无负号,每个.之间是否有数字,数字大小是否满足0到255.,还有是否超出IP限制了

注意点:1.while的判断语句不能写成a[i--],会造成i实际上减一,从而陷入死循环

2.由于是用字符数组接收的,所以不能直接比较大小,只能比较ascii码的大小。所以可以定义一个整型数组去接收(这样就变成了ascii码了,同理,'这个里面也可以把字符转换成ascii码',)

3.善用计数器去判断..之间是否有数字

运用while(scanf("%c",&d[k-1]) != EOF);时,注意每个数存进去之间用加空格,不然会被吞掉

不要使用EOF(不知道怎么结束循环),注意一下几点即可:

EOF(end of file)就是文件的结束,通常来判断文件的操作是否结束的标志。

EOF不是特殊字符,而是定义在头文件<stdio.h>的常量,一般等于-1;

这题嗯写其实不难 ,但会超时,可以考虑用ascii码

#include<stdio.h>
#include<string.h>
int main()
{
	char a[100000];
	int str[100000]; 
	gets(a);
	int ha[256] = { 0 };
    int i;
    for ( i = 0; i < strlen(a); i++){
        str[i] = a[i];
		ha[str[i]]++;
    }
    for (i = 0; i<  strlen(a); i++){
        if (ha[str[i]] == 1){
           printf("%c",str[i]);
           return 0;
       }
	}
	printf("no");
	return 0;
}

 不要想着省事就加个for循环把ha数组缩小,这反而增加了时间

猜你喜欢

转载自blog.csdn.net/qq_61551764/article/details/121355841