1题,下面程序错在哪啦?(改正在后面)

#include <stdio.h>
#include <string.h>
#define LEN 100
#define LENGTH 20
int main()
{
char word[LENGTH + 1];
char  words[LEN +1][LENGTH + 1];char (*p)[LENGTH + 1];
p = words;
char *smallest;
char *biggest;
scanf("%s",word);smallest = "";
biggest = "";while(strlen(word) != 4){strcpy(*p ++ ,word);if(strcmp(smallest,word) > 0)  smallest = p;             if(strcmp(biggest,word) < 0)biggest = p;        scanf("%s",word);}printf("%s\n",biggest);
printf("%s\n",smallest);return 0;
}~          

下面有2~3个改正,每个改正都可以运行

改正1:

#include <stdio.h>
#include <string.h>
#define LEN 100
#define LENGTH 20
int main()
{
char word[LENGTH + 1];
char  words[LEN +1][LENGTH + 1];char (*p)[LENGTH + 1];
p = words;
//错误1,smallest和biggest是要指向数组words的元素(元素是维数是LENGTH + 1的数组)的
,也就是指向
//数组的指针,所以必须定义成数组的指针,下面两句是错误的
char (*smallest)[LENGTH +1];//应该改成  char (*smallest)[LENGTH + 1];//当然也不能赋值为 ""
char (*biggest)[LENGTH + 1]; //应该改成  char(*biggest)[LENGTH + 1];//当然也不能赋值为 ""
scanf("%s",word);smallest = words;
biggest = words;while(strlen(word) != 4){
//smallest 和 biggest一会不能指向word(因为word得内容一直在变化,指向word等于指>向变化量)
//所以要一会或许把p值给smallest或者biggest,p值while循环最后面再自增strcpy(*p,word);//去掉了自增,后面再自增if(strcmp(*smallest,*p) > 0)  //word改正*psmallest = p;             //改成=p   if(strcmp(*biggest,word) < 0)biggest = p;        //改成=p ++ p;scanf("%s",word);}printf("%s\n",*biggest);
printf("%s\n",*smallest);return 0;
}~          

上面程序错误说明:

#include <stdio.h>
#include <string.h>
// LEN is the number of elements in the  array words
#define LEN 100
#define LENGTH 20
int main()
{
char word[LENGTH + 1];
char  words[LEN +1][LENGTH + 1];//p一会要指向数组words,所以需要数组指针,所以如下定义
char (*p)[LENGTH + 1];
p = words;
//存放words的元素的指针,因为words是字符串数组(就是数组的数组),所以small和bigge//st必须字符串指针的指针或者数组指针,即使char**也不行char (*smallest)[LENGTH + 1] = words;
char (*biggest)[LENGTH + 1] = words;scanf("%s",word);
while(strlen(word) != 4){
//word是在不断改变的,所以word不能传给smallest和biggest,
//把words的某个地址传给smallest和biggest  strcpy(*p,word);if(strcmp(*smallest,*p) > 0)smallest = p;if(strcmp(*biggest,*p) < 0)biggest = p;++ p;scanf("%s",word);}printf("%s\n",*biggest);
printf("%s\n",*smallest);return 0;
}

改正2:

//方法1:smallest和biggest定义为char *
#include <stdio.h>
#include <string.h>
#include <stdbool.h>/*LEN是words的单词个数,LENGTH是words每个单词的预留长度*/
#define LEN 100
#define LENGTH 20int init(char (*)[LENGTH + 1],int );
void find_big_small(char (*)[LENGTH + 1]);
void print(char (*p)[LENGTH + 1]);
int main()
{
char words[LEN + 1][LENGTH + 1];
init(words,LEN + 1);
print(words);
find_big_small(words);return 0;
}/*  initial the words  */
int init(char (*p)[LENGTH + 1],int n)
{
char word[LENGTH + 1];
scanf("%s",word);
int cnt = 0;
while(strlen(word) != 4 && (cnt < n)){strcpy(*p ++,word);    scanf("%s",word);++ cnt;}
if(cnt == n)strcpy(*p,"");
else{strcpy(*p ++ ,word);strcpy(*p,"");++ cnt;}return cnt;
}
/*  find smallest and biggest word   */
void find_big_small( char (*p)[LENGTH + 1])
{//small和big是拷贝,这两个赋值都得拷贝char small[LENGTH + 1];char   big[LENGTH  + 1];strcpy(small,*p);strcpy(big,*p);for(; strcmp(*p,"") != 0;++p){if(strcmp(small,*p) > 0)strcpy(small,*p);if(strcmp(big,*p) < 0)strcpy(big,*p);}printf("small:%s\n",small);printf("big  :%s\n",big);
}/*   print the words   */
void print(char (*p)[LENGTH + 1])
{
while(strcmp(*p,"") != 0){printf("%s\n",*p ++);}
}

自己评注:什么都好,就是在find_big_small中small和big都执行拷贝,下面这个程序不执行字符串拷贝,

下面是执行结果:

dog
zebra
rabbit
catfish
walrus
cat
fish
----------------------begin print -----------------------
dog
zebra
rabbit
catfish
walrus
cat
fish
--------------------------end-----------------------------
small:cat
big  :zebra

把程序中查找中的small和big换成指针后,程序如下:


//方法1:smallest和biggest定义为char *
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#define LEN 100
#define LENGTH 20int init(char (*)[LENGTH + 1],int );
void find_big_small(char (*)[LENGTH + 1]);
void print(char (*p)[LENGTH + 1]);
int main()
{
char words[LEN + 1][LENGTH + 1];
init(words,LEN + 1);
print(words);
find_big_small(words);return 0;
}int init(char (*p)[LENGTH + 1],int n)
{
char word[LENGTH + 1];
scanf("%s",word);
int cnt = 0;
while(strlen(word) != 4 && (cnt < n)){strcpy(*p ++,word);    scanf("%s",word);++ cnt;}
if(cnt == n)strcpy(*p,"");
else{strcpy(*p ++ ,word);strcpy(*p,"");++ cnt;}return cnt;
}void find_big_small( char (*p)[LENGTH + 1])
{char (*small)[LENGTH + 1];char   (*big)[LENGTH  + 1];small = p;big = p;for(; strcmp(*p,"") != 0;++p){//small big is pointer which pointed to arrayif(strcmp(*small,*p) > 0)small = p;if(strcmp(*big,*p) < 0)big = p;}printf("small:%s\n",*small);printf("big  :%s\n",*big);
}void print(char (*p)[LENGTH + 1])
{
while(strcmp(*p,"") != 0){printf("%s\n",*p ++);}
}

4.

#include <stdio.h>int main(int argc,char **argv)
{
int i;
for(i = 3;i > 0;--i)printf("%s  ",argv[i]);
printf("\n");return 0;
}

运行:

r@r:~/coml/c/13/program/4$ ./reverse void and null
null  and  void  

5.

#include <stdio.h>
#include <stdlib.h>
int main(int argc,char **argv)
{
int i,sum = 0;
for(i = argc - 1;i > 0; --i)sum += atoi(argv[i]);
printf("sum = %d\n",sum);return 0;
}

注:以上程序使用了atoi函数,原型是   int atoi(const char *str)。定义在stdlib头文件中,作用是把字符串转换成整数。

6.

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define LEN 20
#define NUM_PLA 100
void trans(char *);
int main(int argc,char **argv)
{
char *planets[] = {"Mercury","Venus","Earth","Mars","Jupiter","Saturn","Uranus"
,"Neptune","Pluto"};
char temp[LEN + 1];
int i,j;
for(i = 1; i != argc; ++ i){strcpy(temp,argv[i]);trans(temp);for(j = 0; j != sizeof(planets)/sizeof(planets[0]);++ j){if( strcmp(planets[j],temp) == 0)break;}if(j == 9)printf("%s is not a planet\n",argv[i]);elseprintf("%s is planet %d\n",argv[i],j + 1);}return 0;
}
void trans(char *p)
{
*p ++ = toupper(*p);
int i = 0;
while(*p != '\0'){*p = tolower(*p);++ p;}
}

注:tolower,toupper都定义在ctype头文件中

8.

#include <stdio.h>
#include <string.h>
#define LEN 20char *decade[] = {"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninty"};
char *unit[] = {"one","two","three","four","five","six","seven","eight","nine"};
void print_str(int n);
int main()
{
int n;
int decade_num,unit_num;printf("Enter a two-digit number:");
scanf("%2d",&n);
decade_num = n / 10;
unit_num = n % 10;
if(decade_num == 1)print_str(n);
else {printf("%s ",decade[decade_num -2]);if(unit_num == 0)printf("\n");else printf("%s\n",unit[unit_num - 1]);}return 0;
}void print_str(int n)
{
char str_num[LEN + 1];
switch(n){case 10:strcpy(str_num,"ten");break;case 11:strcpy(str_num,"eleven");break; case 12:strcpy(str_num,"twelve");break; case 13:strcpy(str_num,"thirteen");break; case 14:strcpy(str_num,"fourteen");break; case 15:strcpy(str_num,"fifteen");break; case 16:strcpy(str_num,"sixteen");break; case 17:strcpy(str_num,"seventeen");break; case 18:strcpy(str_num,"eighteen");break; case 19:strcpy(str_num,"nineteen");break; default:printf("wrong number.\n");}
printf("%s",str_num);
}

运行结果:

r@r:~/coml/c/13/program/7$ gcc 1.c -o 123
r@r:~/coml/c/13/program/7$ ./123
Enter a two-digit number:23
twenty three
r@r:~/coml/c/13/program/7$ ./123
Enter a two-digit number:12
twelver@r:~/coml/c/13/program/7$ ./123
Enter a two-digit number:89
eighty nine
r@r:~/coml/c/13/program/7$ ./123
Enter a two-digit number:50
fifty 

8.

#include <stdio.h>
#include <ctype.h>
int compute_scrabble_value(const char *);
#define LEN 100
int main()
{
char num_str[LEN + 1],value;
scanf("%s",num_str);
value = compute_scrabble_value(num_str);
printf("%d",value);
return 0;
}int compute_scrabble_value(const char *s)
{
int sum = 0,value;
char ch;
for(;*s != '\0';++ s){ch = tolower(*s);if(ch == 'a' ||ch == 'e' ||ch == 'i' ||ch == 'l' ||ch == 'n' ||ch == 'o' || ch == 'r' ||ch == 's' ||ch == 't' ||ch == 'u')value = 1;else if( ch == 'd' || ch == 'g')value  = 2;else if( ch == 'b' || ch == 'm' || ch == 'p'|| ch == 'c' )value = 3;else if(ch == 'f' || ch == 'h' || ch ==  'v' || ch == 'w' || ch == 'y')value = 4;else if(ch == 'k')value = 5;else if(ch == 'j'||  ch == 'x')value = 8; else if (ch == 'q' || ch == 'z')value = 10;  else  { value = 0;printf("%c is  is not english word.\n",*s);printf("value is : %d\n",value);}sum += value;}return sum;
}
pitfall
12

9.

#include <stdio.h>
#include <ctype.h>
#define LEN  100
int compute_vowel_count(const char*);
int main()
{
int sum;
char arr[LEN + 1];
scanf("%s",arr);
sum = compute_vowel_count(arr);
printf("total have %d vowels.\n",sum);return 0;
}int compute_vowel_count(const char *s)
{
char ch;
int sum = 0,cnt;
for(;*s != '\0';++ s){ch = tolower(*s);if(ch == 'a' || ch == 'e' || ch =='i' || ch == 'o' || ch == 'u')cnt = 1;else cnt = 0;sum += cnt;}return sum;}      

10.

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define LEN 50
void reverse_name(const char*);
int readline(char *,int );
int main()
{
char name[LEN + 1];
readline(name,LEN+1);
reverse_name(name);
return 0;
}
void reverse_name(const char *name)
{
char surname[LEN + 1];
char name_head;
const char *p;
char *ptr;
int i;
for(p = name; *p != '\0';++p){if(*p >= 'A' && *p <= 'Z' || *p >='a' && *p<='z'){ name_head = toupper(*p);break;}    }for(i = strlen(name);i > 0;-- i){if(p[i] >= 'A' && p[i] <= 'Z'){break;}}
strcpy(surname,name + i);
for(ptr = surname;*ptr != '\0';++ ptr){if(*ptr == ' ')*ptr = '\0';}
printf("%s, %c\n",surname,name_head);}int readline(char *p,int n)
{
char ch;
int i = 0;
while((ch = getchar()) != '\n' && i < n){*p++ = ch;++ i;}
*p = '\0';
return i;
}

运行结果:

Lloyd Fosdick
Fosdick, L

12.

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define LEN 20
#define NUM 30
#define MAX_LENGTH 600
int init_(char (*p)[LEN + 1],int n,char *);
int readline(char *,int );
void reverse();
int main()
{char terminate;
char arr[NUM + 1][LEN + 1];
int cnt =init_(arr,NUM +1,&terminate);
printf("There is total %d words:\n",cnt);
int i;
for(i = 0;i != cnt; ++i){printf("%s  ",arr[i]); }
printf("\n");
reverse(arr,cnt);
printf("%c",terminate);return 0;
}//return how many words
int init_(char (*p)[LEN +1],int n,char *terminate)
{
char words[MAX_LENGTH + 1];
char *ptr;
char word[LEN + 1];
int i = 0;
int cnt = 0;
readline(words,MAX_LENGTH + 1);
*terminate = words[strlen(words) - 1];
words[strlen(words) - 1] = '\0';for(ptr = words;*ptr != '\0';){if(*ptr != ' '){word[i ++] = *ptr ++;}if(*ptr == ' '){word[i ++] = '\0';strcpy(*p ++,word);i = 0;++ cnt;while(*ptr == ' ')++ ptr;    }if(*(ptr + 1) == '\0'){word[i ++] = *ptr ++;word[i] = '\0';strcpy(*p ++,word);++ cnt;    } }
return cnt;}//change the words
void reverse(char (*p)[LEN +1],int n)
{
int i;
for(i = n -1;i >= 0; --i){if(i != 0)printf("%s  ",p[i]);elseprintf("%s",p[i]);}
}
int readline(char *p,int n)
{
char ch;
int i = 0;
while((ch = getchar()) != '\n'){//读入的时候跳过开始的空白字符if(isspace(ch) && i ==0)continue;if(i < n){ *p ++= ch;++ i;}      }
*p = '\0';
return i;
}

运行结果是:

i am a good and you are a good too?
There is total 10 words:
i  am  a  good  and  you  are  a  good  too
too  good  a  are  you  and  good  a  am  i?

13

#include <stdio.h>
#include <ctype.h>
#include <string.h>
void encrypt(char *message,int shift)
{int i;for(i = 0;i != strlen(message);++ i){if(message[i] >= 'A' && message[i] <= 'Z'){message[i] += shift;if(message[i] > 'Z')message[i] -= 'Z'-'A'+1;  }else if(message[i] >= 'a' && message[i] <= 'z') {message[i] += shift;if(message[i] > 'z')message[i] -= 'z' - 'a' + 1;  }else ;}
}
//本题需要输入时候跳过空格,所以必须自己定义一个字符串输入函数
int read_line(char *s,int n)
{
int cnt = 0;
char ch;
while((ch = getchar()) != '\n'){if(cnt == n - 2){printf("stack over flow.");break;}{*s ++ = ch; cnt ++; }*s = '\0';
}}
int main(){char test[100];printf("enter a message:");read_line(test,100);printf("enter shift:");int n;scanf("%d",&n);encrypt(test,n); printf("%s",test);return 0;}

运行:

enter a message:Go ahead,make my day.
enter shift:3
Jr dkhdg,pdnh pb gdb.

14题.

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
typedef int bool;
#define  true 1
#define  false 0
int alpha_nums[26] = {0};
bool are_anagrams(const char *word1,const char  * word2)
{int i = 0;int j = 0;char ch1,ch2;while(word1[i] != '\0'){if(isalpha(word1[i])){ch1 = tolower(word1[i]);alpha_nums[ch1 - 'a'] ++;}++ i;}while(word2[j] != '\0'){if(isalpha(word2[j])){ch2 = tolower(word2[j]);alpha_nums[ch2 - 'a']--;}++ j;    }
int *p = alpha_nums;
bool sign = true;
while(p  != alpha_nums + 26){if(*p ++ != 0){sign = false; break;}}
return sign;
}int main()
{
char word1[100];
char word2[100];printf("Enter first word:");scanf("%s",word1);printf("Enter second word:");scanf("%s",word2);bool result = are_anagrams(word1,word2);if(result == true)printf("The two words are anagrams.");elseprintf("The two words are not anagrams");
return 0;
}

在ubuntu20.04上运行结果是:

r@r:~/coml/c/13/program/14$ ./123
Enter first word:smartest
Enter second word:mattress
The two words are anagrams.r@r:~/coml/c/13/program/14$ ./123
Enter first word:dumbest
Enter second word:stumble
The two words are not anagrams

15题

#include <stdio.h>
#define STACK_SIZE 100
typedef int bool;
#define true  1
#define false 0
char contents[STACK_SIZE];
int  top = 0;bool is_number(char );
bool is_operator(char );
double evaluate_RPN_expression(const char *);
double calculate(double ,double ,char );char pop()
{return contents[-- top];
}void push(char ch)
{contents[top ++] = ch;
}void print(char *p,int n){char *ptr = p;while(ptr != p + n){printf("%c ",*ptr);++ ptr;}}
void print_num(int *p,int n)
{
int *ptr = p;
while(ptr != (p + n)){printf("%d",*ptr);++ ptr;}}int main()
{
char ch;
double result;
while((ch = getchar()) != '\n'){if(is_operator(ch) || is_number(ch))push(ch);else if(ch == '=')push(ch);elsebreak;}
result = evaluate_RPN_expression(contents);
printf("%lf",result);return 0;
}double evaluate_RPN_expression(const char *expression)
{
double num_arr[STACK_SIZE];
int index = 0;
const char *ptr = expression;
double temp;int cnt = 0;
while(*ptr != '='){if(is_number(*ptr)){num_arr[index ++]  = *ptr - 48;}else if(is_operator(*ptr)){temp = calculate(num_arr[index-2],num_arr[index-1],*ptr);             -- index;num_arr[index - 1] = temp; }else {printf("error character:%c.\n\n",*ptr);return -1; }       ptr ++;}
return num_arr[index - 1];
}double calculate(double d1,double d2,char ope)
{
double result;
if(ope == '-')result = d1 - d2;
else if(ope == '+')result = d1 + d2;
else if(ope == '*')result = d1 * d2;
else if(ope == '/')result = d1 / d2;
else{printf("error ope.");result =  -1;}
return result;
}bool is_operator(char ch)
{
if(ch == '+' || ch == '-' || ch == '*'|| ch == '/')return true;
else return false;
}
bool is_number(char ch)
{
if(ch >= '0' && ch <= '9')return true;
else return false;
}

16题

#include <string.h>
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
void reverse(char *p);
int readline(char *);
int main()
{
char arr[MAX_SIZE];
readline(arr);
reverse(arr);
printf("\n");
printf("%s",arr);return 0;
}
void reverse(char *p)
{
char *ptr1 = p;
char *ptr2 = p + strlen(p) - 1;
char temp;
while(ptr1 <= ptr2){temp = *ptr1;*ptr1 = *ptr2;*ptr2 = temp;++ ptr1;-- ptr2;   }
}int readline(char *p)
{
char ch;
int cnt = 0;while((ch = getchar()) != '\n'){if(cnt <= MAX_SIZE - 2){*p = ch;++ p;++ cnt;      }elsebreak; }*p = '\0';return cnt;
}

17.

#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define MAX_SIZE 100
int readline(char *,int );
typedef int bool;
#define true  1
#define false 0
bool is_palindrome(const char *message){
const char *ptr1 = message;
//这里不能用sizeof(message) / sizeof(message[0] -1代替下面的一个)
// 用sizeof表达式相除算出的结果不对的,sizeof()是计算数组的,不是字符串的
const char *ptr2 = message + strlen(message) - 1;
while(ptr1 <= ptr2){//可能得连续跳过非字母的字符while(!isalpha(*ptr1))++ ptr1;//可能连续跳过非字母的字符while(!isalpha(*ptr2))-- ptr2;if(tolower(*ptr1) != tolower(*ptr2))return false;else{ptr1 ++;ptr2 --;}}
return true;
}int main()
{
char message[MAX_SIZE + 1];
readline(message,MAX_SIZE);
bool result = is_palindrome(message);
if(result == true)printf("Palindrome");
elseprintf("Not palindrome");
return 0;
}int readline(char *p,int n)
{
char ch;
int cnt = 0;
while((ch = getchar()) != '\n'){if(cnt < n){*p ++= ch;++ cnt;}}
*p = '\0';
return cnt;
}

运行

hE LIVED AS A DEVIL,EH?
Palindrome

18.

#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 20
char *month_sets[12] = {"Januday","February","March","Apail","May","June","July","August","September","October","November","December"};
void conversion_format(const char *);
int main()
{
char message[MAX_SIZE];
scanf("%s",message);
conversion_format(message);
return 0;
}void conversion_format(const char *message)
{
char month[3];
char day[3];
char year[5];
int month_int;
//处理月份
int i = 0;
while(*message != '/')
{month[i ++] = *message ++;
}
month[i] = '\0';//处理day
++ message;
i = 0;
while(*message != '/')
{day[i ++] = *message ++;
}
day[i] = '\0';//处理年份
++ message;
i = 0;
while(*message != '\0')
{
year[i ++] = *message ++;
}//将字符串格式转换成整形,需要包含头文件stdlib.h
month_int = atoi(month);
printf("%s  %s,%s",month_sets[month_int-1],day,year);}

运行

2/23/2021
February  23,2021

c现代方法 13章程序设计题 自己编写答案相关推荐

  1. c++primer plus 第13章 编程题第2题

    c++primer plus 第13章 编程题第2题 #pragma once #ifndef CD_H_ #define CD_H_ //base classclass Cd { private:c ...

  2. 计算机基础access数据库操作题,2021年3月全国计算机等级考试二级Access数据库程序设计题库及答案讲解...

    原标题:2021年3月全国计算机等级考试二级Access数据库程序设计题库及答案讲解 资料来源:学盛通学习网547所大学考研专业课(历年真题及模拟题可在线作答,系统自动评分,出答案及解析) 本题库是详 ...

  3. 职教云python题和答案_智慧职教云课堂APPPython程序设计题库及答案

    智慧职教云课堂APPPython程序设计题库及答案 更多相关问题 What are the features of Eton College? 在温度T时,容器内充有3.0 mol的氧气,2.0 mo ...

  4. 速学堂(java)第六章编程题自写答案

    速学堂(java)第六章编程题自写答案 1. 编写程序接收用户输入分数信息,如果分数在0-100之间,输出成绩.如果成绩不在该范围内,抛出异常信息,提示分数必须在0-100之间. 要求:使用自定义异常 ...

  5. c语言上机题库程序设计,C语言上机程序设计题库及答案.docx

    C语言上机程序设计题库及答案 C语言上机程序设计题库[程序设计]功能:根据整型形参m,计算如下公式的值:y=sin(m)*10.[参考代码] double y=0; y=sin(m)*10; retu ...

  6. 04737 c++ 自学考试2019版 第五章程序设计题 1

    /* * 04737 c++ 自学考试2019版 第五章课后练习 * 程序设计题 1 * 需求:交通工具包含汽车,汽车又包含..... */#include<iostream> #incl ...

  7. C语言中fun的功能是将字符串,c语言程序设计请编写一个函数fun,它的功能是:将ss所指字符串中所.,c语言程序设计题 请编写一个函数fun,它的功能是:将ss所...

    计算机二级C语言上机南开100题--1 1: 第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中. ...

  8. c语言上机题库程序设计,c语言上机程序设计题库及答案.pdf

    C 语言上机程序设计题库 [程序设计] 功能:根据整型形参 m,计算如下公式的值:y=sin(m)*10. [参考代码] double y=0; y=sin(m)*10; return(y); 功能: ...

  9. c语言程序设计现代方法第二版 第10章程序设计题3题,自己编写的一个程序

    main.c文件 #include <stdio.h> //#include "lib.h" if there is a statement like this ,th ...

最新文章

  1. 【GVA】gin gorm多对多many2many更新数据时级联更新关联表数据的正确写法
  2. eval 与 Function
  3. Spring Cloud Security:Oauth2实现单点登录
  4. CSS 3实战:开发与设计迷你书
  5. 如果编程替换成中文就会怎样? 程序员看了表示头疼
  6. tensorflow with gpu 环境配置
  7. abb机器人伺服电机报闸是什么_ABB机器人伺服电机维修更换马达步骤
  8. Android蓝牙adb调试命令
  9. 使用Bitmap font generator工具生成fnt文件
  10. 双闭环直流调速系统的MATLAB的仿真,双闭环直流调速系统MATLAB仿真
  11. 开关电源PFC电路原理详解及matlab仿真
  12. 金山也推隐私保护器,我的隐私谁做主?
  13. psd转html的素材,Ai2Psd:一键ai转psd格式脚本
  14. python解压rar文件
  15. 微电子电路——期末总结
  16. 常见的对称式加密与非对称式加密算法
  17. 你或许也想拥有专属于自己的AI模型文件格式(推理部署篇)-(8)
  18. 小学教育怎么选择特别容易写的论文选题?
  19. apache 2.4 httpd 2.4.6 反向代理后端的服务为HTTPS https 基于centos7
  20. 前端3D开发,你需要了解的知识汇总

热门文章

  1. iOS 9.0以后支持http协议
  2. store前台数据过滤
  3. 牛客网(剑指offer) 第七题 斐波那契数列
  4. [Python图像处理] 三十七.OpenCV直方图统计两万字详解(掩膜直方图、灰度直方图对比、黑夜白天预测)
  5. [Python图像处理] 三十四.数字图像处理基础与几何图形绘制万字详解(推荐)
  6. 【数据结构与算法】之深入解析“路径交叉”的求解思路与算法示例
  7. iOS之深入解析Xcode 13正式版发布的40个新特性
  8. iOS之“微信支付”开发流程
  9. 78. Subsets 子集
  10. 10.2.1 CSS介绍与引入