Dica: aqui você pode adicionar o catálogo de todos os artigos da série, e o catálogo precisa ser adicionado manualmente por você.
Por exemplo: o primeiro capítulo Introdução ao aprendizado de máquina Python para o uso de pandas
Dica: Depois de escrever o artigo, o índice pode ser gerado automaticamente. Para saber como gerá-lo, consulte o documento de ajuda à direita
Artigo Diretório
Prefácio
Para um aluno que reaprendeu o curso de linguagem C, gostaria de escrever algumas notas importantes aqui, e alguns exemplos difíceis (claro, só para mim), todos também podem se referir a ele.
1. A linguagem C é a mais fácil de começar
1. Tipo de dados
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
Cada um ocupa alguns bytes, verifique com a seguinte função, você sabe, isso é melhor lembrar.
#include<stdio.h>
void main(){
printf("char= %d\n", sizeof(char));
printf("short=%d\n", sizeof(short));
printf("int=%d\n", sizeof(int));
printf("long=%d\n", sizeof(long));
printf("long long =%d\n", sizeof(long long));
printf("double= %d\n", sizeof(double));
}
2. Variáveis, constantes
Como o nome sugere, as variáveis são valores que irão mudar, enquanto as constantes são valores que não podem ser alterados depois de definidas.
- O escopo de uma variável local é o escopo local da variável.
- O escopo das variáveis globais é todo o projeto.
- O ciclo de vida de uma variável se refere ao período de tempo entre a criação da variável e a destruição da variável
- O ciclo de vida de uma variável local é: o ciclo de vida de entrada no escopo começa e o ciclo de vida fora do escopo termina.
- O ciclo de vida das variáveis globais é: o ciclo de vida de todo o programa.
3. String + caractere de escape
Uma string de caracteres causada por aspas duplas é chamada String Literal, ou string para abreviar. (Observação: a marca final de uma string é um caractere de escape de \ 0. Ao calcular o comprimento da string, \ 0 é a marca final e não é contada como uma string)
Caractere de escape
:? Usado ao escrever pontos de interrogação consecutivos, Evita que sejam analisados em palavras de três letras.
'Usado para denotar constantes de caractere'
\ "Usado para denotar aspas duplas dentro de uma string.
\ Usado para denotar uma barra invertida, evitando que seja interpretado como um caractere de sequência de escape.
\ a Caractere de aviso, campainha
\ b backspace
\ f alimentação de papel
\ n alimentação de linha
\ r retorno de carro
\ t guia horizontal
\ v guia vertical
\ ddd ddd representa 1 ~ 3 números octais. Por exemplo: \ 130 X
\ xdd dd significa 2 hexadecimal dígitos. Por exemplo: \ x30 0
#include <stdio.h>
int main()
{
printf("%d\n", strlen("abcdef"));
printf("%d\n", strlen("c:\test\328\test.c"));
return 0;
}
Os resultados de saída são: 6 14 O
primeiro é fácil de entender. Aqui eu divido o segundo para ficar mais fácil de entender. O mais embaraçoso é que meu entendimento estava errado no início, mas finalmente descobri que era tipo isso. Por conveniência, entenda, eu separo cada caractere com #: c #: # \ t # e # s # t # \ 32 # 8 # \ t # e # s # t #. # c, você pode encontrar um total de 13 #
4. Selecione e execute um loop de instruções
A frase de escolha é o que chamamos de if, switch, switch. Acho que é um tipo especial de frase de escolha, que é semelhante à escolha de if e else, que é mais fácil de entender. Observação: a interrupção pode sair da chave e a cláusula padrão é usada para o processamento. Se o caso não puder ser correspondido, ele pode ser escrito antes ou depois do caso na chave, não importa.
Instrução de loop
while
por
do while
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ", i);
i = i + 1;
}
return 0;
}
#include <stdio.h>
int main()
{
int i = 0;
for(i=1; i<=10; i++)
{
printf("%d ", i);
}
return 0;
}
#include <stdio.h>
int main()
{
int i = 10;
do
{
printf("%d\n", i);
}while(i<10);
return 0;
}
Aqui, novamente, a diferença entre break e continue, o primeiro salta diretamente do loop, e o último termina este loop e entra no próximo loop.
2. Perguntas típicas
1. Imprimir losango
#include<stdio.h>
//打印菱形
int main()
{
int i, j, N = 5;
//上半部分
for (i = 0; i < N; i++) //N控制上半部分行数
{
for (j = i; j < N - 1; j++) //随行数递增,空格数递减(这里每行前面的空格数分别为4,3,2, 1,0)
printf(" ");
for (j = 0; j < 2 * i + 1; j++) //随行数递增,“*”数递增(这里每行前面的*数分别为1,3,5,7,9)
printf("*");
printf("\n"); //记得换行
}
//下半部分,其实就是上半部分的翻转
for (i = N - 2; i >= 0; i--) //这里i从N-2开始的,不知道为什么的可以换成N-1试试,保证秒懂
{
for (j = i; j < N - 1; j++) //这里的空格数刚好相反,是随行数递增的
printf(" ");
for (j = 0; j < 2 * i + 1; j++) //这里的“*”数则是递减的(想想图形的样子)
printf("*");
printf("\n"); //同样的记得换行
}
return 0;
}
2. Encontre e produza todo o "número de narcisos" entre 0 e 100.000.
#include <math.h>
void main(){
int n;
int a[6] = {
0 };
int i;
int sum = 0;
int count = 0;
for (n = 0; n <= 100000; ++n){
//遍历0-100000之间所有数字
for (i = n; i; i /= 10){
a[count] = i % 10; //用数组a[count]将每一位存起来,用count记下数字的位数
++count;
}
for (i = 0; i < count; ++i){
sum += pow(a[i], count); //将数组中所存的数字的每一位进行对应的位数count次方并求和
}
if (n == sum){
printf("%d \n", n);
}
count = sum = 0; //强制将count与sum归0
}
}
3. Pesquisa binária
#include <math.h>
void main()
{
int ar[] = {
12, 23, 34, 45, 56, 67, 78, 90, 100, 120, 150, 200, 1234 };
int n = sizeof(ar) / sizeof(ar[0]);
int key;
printf("input key:>");
scanf("%d", &key);
int low = 0;
int high = n - 1;
int mid, index = -1;
while (low <= high)
{
mid = (low + high) / 2;
if (key == ar[mid])
{
index = mid;
break;
}
else if (key < ar[mid])
high = mid - 1;
else
low = mid + 1;
}
if (index == -1)
printf("要查找的%d不存在.....\n", key);
else
printf("要查找的%d在: 第%d个\n", key, index+1);
}
Resumindo
Aqui está uma pequena introdução, e há muitas perguntas típicas, as seguintes funções, matrizes, ponteiros, serão adicionados, como dizer, na segunda vez para aprender esta linguagem, me sinto muito diferente, não a primeira vez, tão ignorante Agora , Eu sei como implementar algo para uma coisa, embora às vezes a forma como é implementado seja uma porcaria, esse também é o motivo para escrever muito pouco, então ainda tenho que discordar do código.