华为OJ(四)

1、配置文件恢复(超时)

#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;
int main(){

char str[15];
char strFirst[10];
char strSecond[10];
//问题一?如何判断输入的是一个命令还是两个命令 用gets读取
//getchar();
gets(str); //注意使用gets要包含头文件<stdio.h>

//对输入的数据做处理
//1.首先知道输入中间是否有空格,并且得到先后输入的命令
    bool flag=false; //有空格则为true
    int i,j;
    int Fnum=0,Snum=0;
    for(i=0;;i++){
        if(!flag && str[i]!='\0' && str[i]!=' '){
            strFirst[Fnum++]=str[i];
        }else if(flag && str[i]!='\0' && str[i]!=' '){
            strSecond[Snum++]=str[i];
        }
        if(str[i]==' ') flag=true;
        if(str[i]=='\0') break;
    }
    strFirst[Fnum++]='\0';
    strSecond[Snum++]='\0';
//2.如果只有一个命令,则匹配reset,匹配失败则输出失败
    bool flag1=true; //true代表匹配上了
    char reset[6]={"reset"};
    if(!flag){ //只有一条命令

        for(i=0;;i++){
            if(strFirst[i]!='\0' && reset[i]!='\0' && strFirst[i]!=reset[i]){ //没有读完就继续进行比较
                flag1 = false;
            }else if(strFirst[i]=='\0'){ //命令读完了

                break;
            }else if(reset[i]=='\0' && strFirst[i]!='\0'){
                flag1 = false;
            }
        }

        if(flag1){
            cout<<"reset what";
        }else{
            cout<<"unkown command";
        }

    }else{

//2.如果有两条命令,则分别比较
//匹配第一条,分别匹配 reset board reboot backplane
string strJudge1[4]={"reset","board","reboot","backplane"};
bool num1[4]={true,true,true,true};
for(j=0;j<4;j++){
    //开始匹配
    for(i=0;;i++){
            if(strFirst[i]!='\0' && strJudge1[j][i]!='\0' && strFirst[i]!=strJudge1[j][i]){ //没有读完就继续进行比较
                num1[j] = false;
            }else if(strFirst[i]=='\0'){ //命令读完了
                break;
            }else if(strJudge1[j][i]=='\0' && strFirst[i]!='\0'){
                num1[j] = false;
            }
        }
}

    //3.继续匹配下一个

    string strJudge2[5]={"board","add","delet","backplane","abort"};
    bool num2[5]={true,true,true,true,true};
    for(j=0;j<5;j++){
        //开始匹配
        for(i=0;;i++){
            if(strSecond[i]!='\0' && strJudge2[j][i]!='\0' && strSecond[i]!=strJudge2[j][i]){ //没有读完就继续进行比较
                num2[j] = false;
            }else if(strSecond[i]=='\0'){ //命令读完了
                break;
            }else if(strJudge2[j][i]=='\0' && strSecond[i]!='\0'){
                num2[j] = false;
            }
        }
    }

    bool num3[5]={false,false,false,false,false};
    //执行输出
    if(num1[0]==true && num2[0]==true){
        num3[0]=true;
    }
    if(num1[1]==true && num2[1]==true){
        num3[1]=true;
    }
    if(num1[1]==true && num2[2]==true){
        num3[2]=true;
    }
    if(num1[2]==true && num2[3]==true){
        num3[3]=true;
    }
    if(num1[3]==true && num2[4]==true){
        num3[4]=true;
    }

    int count=0; //统计匹配上的数量
    int save;

    for(int i=0;i<5;i++){
        if(num3[i]==true){
            count++;
            save=i;
        }
    }
    if(count==1){
        if(save==0){
            cout<<"board fault";
        }else if(save==1){
            cout<<"where to add";
        }else if(save==2){
            cout<<"no board at all";
        }else if(save==3){
            cout<<"impossible";
        }else if(save==4){
            cout<<"install first";
        }
    }else{
        cout<<"unkown command";
    }
}
return 0;
}

火车进站

#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
int n;
int* add(int list[],int num1,int num2){
    int temp = list[num1];
    list[num1] = list[num2];
    int i;
    for(i=num2;i>num1;i--)
        if((i-1)==num1){
            list[i] = temp;
        }else{
            list[i] = list[i-1];
        }
    return list;
}
void fun(int list[],int begin,int end){
    int i,j,k;
    if(begin == end){
        //进行判断是否符合出栈规则
        for(j=0;j<n;j++){ //从左到右
            for(k=j+1;k<n;k++){
                list[k]<list[j]; //右边的数字小于左边的
            }
        }

        for(i=0;i<n;i++) cout<<list[i]<<" ";
        cout<<endl;
    }else{
        for(i=begin;i<=end;i++){
            //swap(list[begin],list[i]);
            list = add(list,begin,i);
            fun(list,begin+1,end);
            //swap(list[begin],list[i]);
            list = add(list,begin,i);
        }

    }
}
//全排列
int main(){
   //数据初始化
   cin>>n;
   int list[100];
   int i;
   for(i=0;i<n;i++){
    cin>>list[i];
   }
   //对数据进行排序
   int j;
   int temp;
   for(int i=0;i<n;i++){
        for(int j=i;j<n;j++){
            if(list[i]>=list[j]){
                temp = list[i];
                list[i] = list[j];
                list[j] = temp;
            }
        }
   }




}

字符串最后一个单词的长度

#include<iostream>
#include<cstdio>
using namespace std;
int main(){
    //初始化数据
    char str[1000];
    gets(str);
    //获取字符串长度
    int len=0;
    int i;
    for(i=0;str[i]!='\0';i++){
        if(str[i]==' '){
            len = 0;
        }else{
            len++;
        }
    }
    cout<<len;
}

坐标移动

#include<iostream>
using namespace std;
int main(){
    //数据初始化
    int x=0;
    int y=0;
    char str[1000];
    cin>>str;
    //获得字符串长度
    int len=0;
    int i,j,k;
    for(i=0;str[i]!='\0';i++){
        len++;
    }
    //cout<<"字符串长度:"<<len<<endl;
    //
    char commd[10]; //存储命令
    int clen=0; //存储命令长度
    bool flag=true;
    for(i=0;i<len;i++){
        if(str[i]!=';'){
            commd[clen++]=str[i];
        }else{ //对命令进行分析处理,处理之后归0
            //判断str[1]到str[clen-1]内是否有字符
            int num=0;
            int maxnum=1;
            //获得最高位
            for(k=0;k<clen-2;k++){
                maxnum*=10;
            }
            //判断数字是否符合要求,并返回数字大小
            for(j=1;j<clen;j++){
                if(!(commd[j]>='0'&&commd[j]<='9')){ //如果不符合要求
                    flag=false;
                }else{ //如果符合要求
                    int n = commd[j]-'0';
                    num+=(n*maxnum);
                    maxnum/=10;
                }
            }
            //如果符合要求,计算数字大小
            if(flag){
                if(commd[0]=='A'){
                    x-=num;
                    //cout<<"x减"<<num<<endl;
                }else if(commd[0]=='D'){
                    x+=num;
                    //cout<<"x加"<<num<<endl;
                }else if(commd[0]=='W'){
                    y+=num;
                    //cout<<"y加"<<num<<endl;
                }else if(commd[0]=='S'){
                    y-=num;
                    //cout<<"y减"<<num<<endl;
                }
            }
            //归0
            flag = true;
            clen = 0;

        }
    }
    //输出
    cout<<x<<","<<y;

    return 0;
}

购物单

#include<iostream>
#include<cstdio>
using namespace std;
    int v[100][3];
    int w[100][3];
int max(int n1,int n2){
    int max=n1;
    if(n2>max){
        max=n2;
    }
    return max;
}

int max(int n1,int n2,int n3){
    int max=n1;
    if(n2>max){
        max=n2;
    }
    if(n3>max){
        max=n3;
    }
    return max;
}

int max(int n1,int n2,int n3,int n4){
    int max=n1;
    if(n2>max){
        max=n2;
    }
    if(n3>max){
        max=n3;
    }
    if(n4>max){
        max=n4;
    }
    return max;
}

int max(int n1,int n2,int n3,int n4,int n5){
    int max=n1;
    if(n2>max){
        max=n2;
    }
    if(n3>max){
        max=n3;
    }
    if(n4>max){
        max=n4;
    }
    if(n5>max){
        max=n5;
    }
    return max;
}

int f(int i,int j){ // i:主件标号 j:金钱数目
    if(i<0 || j<0){
        return 0;
    }else{
        int maxNum;
        if((j-v[i][0])<0){ //买不起主件
            maxNum = f(i-1,j);
        }else if((j-v[i][0]-v[i][1])<0 && (j-v[i][0]-v[i][2])<0){ //买得起主件,但买不起附件1和附件2
            maxNum=max(
            f(i-1,j),                       //什么都不买
            f(i-1,j-v[i][0])+v[i][0]*w[i][0]  //买主件
            );
        }else if((j-v[i][0]-v[i][1])<0 && (j-v[i][0]-v[i][2])>0){ //买得起主件、附件2
            maxNum=max(
            f(i-1,j),                       //什么都不买
            f(i-1,j-v[i][0])+v[i][0]*w[i][0],  //买主件
            f(i-1,j-v[i][0]-v[i][2])+v[i][0]*w[i][0]+v[i][2]*w[i][2]  //买主件和附件二
            );
        }else if((j-v[i][0]-v[i][1])>0 && (j-v[i][0]-v[i][2])<0){ //买得起主件、附件1
            maxNum=max(
            f(i-1,j),                       //什么都不买
            f(i-1,j-v[i][0])+v[i][0]*w[i][0],  //买主件
            f(i-1,j-v[i][0]-v[i][1])+v[i][0]*w[i][0]+v[i][1]*w[i][1]  //买主件和附件一
            );
        }else if(((j-v[i][0]-v[i][1])>0 && (j-v[i][0]-v[i][2])>0) && (j-v[i][0]-v[i][1]-v[i][2])<0){
            maxNum=max(
            f(i-1,j),                       //什么都不买
            f(i-1,j-v[i][0])+v[i][0]*w[i][0],  //买主件
            f(i-1,j-v[i][0]-v[i][1])+v[i][0]*w[i][0]+v[i][1]*w[i][1],  //买主件和附件一
            f(i-1,j-v[i][0]-v[i][2])+v[i][0]*w[i][0]+v[i][2]*w[i][2]  //买主件和附件二
            );
        }else if((j-v[i][0]-v[i][1]-v[i][2])>0){
            maxNum=max(
            f(i-1,j),                       //什么都不买
            f(i-1,j-v[i][0])+v[i][0]*w[i][0],  //买主件
            f(i-1,j-v[i][0]-v[i][1])+v[i][0]*w[i][0]+v[i][1]*w[i][1],  //买主件和附件一
            f(i-1,j-v[i][0]-v[i][2])+v[i][0]*w[i][0]+v[i][2]*w[i][2],  //买主件和附件二
            f(i-1,j-v[i][0]-v[i][1]-v[i][2])+v[i][0]*w[i][0]+v[i][1]*w[i][1]+v[i][2]*w[i][2]   //买主件和附件一和附件二
            );
        }
        return maxNum;

    }
}

int main(){
    /*数据初始化*/
    int N,m; //N:金钱总额 m:希望购买物品的个数
    cin>>N>>m;
    int V[100],P[100],Q[100]; //分别对应物品的价格 重要度 主从
    int i;
    for(i=0;i<m;i++){
        cin>>V[i]>>P[i]>>Q[i];
    }
    /*数据主从分类*/
    //第一步.得到主件
    int mainNum=0;                //主件数目
    int number[100];              //记录编号对应mainNum
    int addnumber[100];           //记录附件数量
    for(i=0;i<m;i++){             //若是主件,对应编号是i+1
        if(Q[i]==0){
            number[i+1]=mainNum;
            v[mainNum][0]=V[i];
            w[mainNum][0]=P[i];
            addnumber[mainNum]=1; //主件附件标号初始化
            mainNum++;            //主件数目加一

        }
    }
    //第二步.附件信息初始化
    for(i=0;i<mainNum;i++){
        v[i][1]=0;
        v[i][2]=0;
        w[i][1]=0;
        w[i][2]=0;
    }
    //第三步.得到附件
    for(i=0;i<m;i++){
        if(Q[i]!=0){
            int a = number[Q[i]]; //a即代指mainNum主件标号
            v[a][addnumber[a]]=V[i];
            w[a][addnumber[a]]=P[i];
            addnumber[a]++;
        }
    }
    /*
    //测试:信息输出
    for(i=0;i<mainNum;i++){
        cout<<"主件"<<i+1<<"价值:"<<v[i][0]<<" 重要度:"<<w[i][0]<<endl;
        cout<<"主件"<<i+1<<"附件1的"<<"价值:"<<v[i][1]<<" 重要度:"<<w[i][1]<<endl;
        cout<<"主件"<<i+1<<"附件2的"<<"价值:"<<v[i][2]<<" 重要度:"<<w[i][2]<<endl<<endl;
    }
    */
    /*正式处理*/
    int result = f(mainNum-1,N);
    cout<<result;
    return 0;
}

图片整理

#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
int main(){
    char str[1000];
    cin>>str;
    int len=0;
    int i,j;
    for(i=0;str[i]!='\0';i++){
        len++;
    }
    char temp;
    for(i=0;i<len;i++)
        for(j=i+1;j<len;j++){
            if(str[i]>str[j]){
                temp = str[j];
                str[j]= str[i];
                str[i]= temp;
            }
        }
    for(i=0;i<len;i++){
        cout<<str[i];
    }
    return 0;
}

合唱队

#include<iostream>
using namespace std;
int N;
int height[1000];
int array[1000]; //记录是否出列
bool judge(int array[],int len){
    int i;
    int heightLen=0;
    int heightTemp[1000];
    int maxHeight;
    int maxLocal;
    //得到未出列的身高
    for(i=0;i<len;i++){
        if(array[i]==0){
            heightTemp[heightLen++]=height[i];
        }
    }
    if(heightLen!=0){
        maxHeight = heightTemp[0];
        maxLocal = 0;
        //得到最高的身高
        for(i=0;i<heightLen;i++){
            if(maxHeight<heightTemp[i]){
                maxHeight = heightTemp[i];
                maxLocal = i;
            }
        }
        //判断是否符合
        bool flag = true;
        for(i=0;i<maxLocal;i++){
            if(!(heightTemp[i]<heightTemp[i+1])){
                flag = false;
                break;
            }
        }
        for(i=maxLocal;i<heightLen-1;i++){
            if(!(heightTemp[i]>heightTemp[i+1])){
                flag = false;
                break;
            }
        }
        return flag;
    }else{ //全出列
        return false;
    }
}

int fun(int local,int array[]){    //哪一队,之前的出列数组
    int s1,s2;
    if(local<N-1){
        //local位置出列
        array[local]=1;
        if(judge(array,local+1)){
            s1 = 1+fun(local+1,array);
        }else{
            s1 = N;
        }
        //local位置不出列
        array[local]=0;
        if(judge(array,local+1)){
            s2 = fun(local+1,array);
        }else{
            s2 = N;
        }
    }else{
        //1、出列
        //判断是否符合要求
        array[local]=1;
        if(judge(array,N)){
           s1 = 1;
        }else{
           s1 = N;
        }
        //2、不出列
        array[local]=0;
        if(judge(array,N)){
           s2 = 0;
        }else{
           s2 = N;
        }

    }
    return s1<s2?s1:s2; //返回较小者
}

int main(){
    //数据初始化
    cin>>N;
    int i;
    for(i=0;i<N;i++){
        cin>>height[i];
    }
    //正式处理
    int result = fun(0,array);
    cout<<result;
    return 0;
}

名字的漂亮度

#include<iostream>
using namespace std;
int main(){
    int N;
    char str[100]; //存储字符串
    int score[100]; //记录漂亮度的得分
    cin>>N;
    int i,j,k;
    for(i=0;i<N;i++){
        //字符串初始化
        cin>>str;
        //获取字符串长度
        int len=0;
        for(j=0;str[j]!='\0';j++){
            len++;
        }
        //统计每类字母的出现次数
        int count[26]={0,0,0,0,0,0
        ,0,0,0,0,0,0,0,0,0,0
        ,0,0,0,0,0,0,0,0,0,0};
        for(j=0;j<len;j++){
            int local = (str[j]-'A'<=25 && str[j]-'A'>=0)?str[j]-'A':str[j]-'a';
            count[local]++;
        }
        //对count排序
        for(j=0;j<26;j++){
            for(k=j+1;k<26;k++){
                if(count[j]<count[k]){
                    int temp = count[k];
                    count[k] = count[j];
                    count[j] = temp;
                }
            }
        }
        //进行漂亮度的统计
        score[i]=0;
        for(j=0;j<26;j++){
            score[i]+=(26-j)*count[j];
        }
    }
    //输出结果
    for(i=0;i<N;i++){
        cout<<score[i]<<endl;
    }

    return 0;
}

IP匹配

#include<iostream>
#include<stdlib.h>
using namespace std;
bool funKey(int *array){
    bool flag=true;
    int i;
    for(i=0;i<=3;i++){
        if(array[i]!=255 && array[i]!=0){
            flag = false;
        }else if(i!=3 && array[i]==0 && array[i+1]!=0){
            flag = false;
        }
    }
    return flag;
}


bool fun(char str[],int len,char local){
    int localSign[100]; //记录local出现的位置
    int localLen=0;
    int i;
    bool flag = true;
    //localSign初始化
    for(i=0;i<len;i++){
        if(str[i]==local){
            localSign[localLen++]=i;
        }
    }
    //判断是否符合规范
    for(i=0;i<localLen-1;i++){
        if(localSign[i+1]-localSign[i]==1){
            flag = false;
        }
    }
    return flag;
}

/*
 *方法名:splitFun
 *参数:str 原始字符串 / len 原始字符串长度 / local 拆分标准 / array 存储拆分后的字符
 *返回:查分得到的数字个数
 */
int* splitFun(char str[],int len,char local){

    int localSign[100]; //记录local出现的位置
    int localLen=0;
    int i,j;
    int num=0; //array位置
    int* array = (int *)malloc(sizeof(int)*4); //记得要及时free
    //localSign初始化
    for(i=0;i<len;i++){
        if(str[i]==local){
            localSign[localLen++]=i;
        }
    }
    //array初始化
    for(i=0;i<=localLen;i++){ //例如有3个'.' 则分为了4段
        if(i==0){
            int number = 1;
            array[num] = 0;
            for(j=localSign[0]-1;j>=0;j--){
                array[num] += number*(str[j]-'0');
                number*=10;
            }
            num++;
        }else if(i==localLen){
            int number = 1;
            array[num] = 0;
            for(j=len-1;j>=localSign[i-1]+1;j--){
                array[num] += number*(str[j]-'0');
                number*=10;
            }
            num++;
        }else{
            int number = 1;
            array[num] = 0;
            for(j=localSign[i]-1;j>=localSign[i-1]+1;j--){
                array[num] += number*(str[j]-'0');
                number*=10;
            }
            num++;
        }

    }
    return array;
}

int main(){
    char str[100][1000]; //存储输入的IP以及子网掩码
    int numCount=0;
    int num[7]={0,0,0,0,0,0,0}; // 01234 ABCDE 5错误的IP或掩码 私有的IP
    int i;
    while(cin>>str[numCount]){
        int numIP[4]; //存储IP 4个数字  0~ipLen-1
        int numKey[4];//存储子网掩码 4个数字 ipLen+1~len-1
        char strIP[100];
        char strKey[100];
        int len=0;
        int ipLen=0;
        int keyLen=0;
        //获得str的长度
        for(i=0;str[numCount][i]!='\0';i++){
            len++;
        }

        //获得IP地址的长度
        for(i=0;str[numCount][i]!='~';i++){
            ipLen++;
        }
        //获得子网掩码的长度
        keyLen = len-ipLen-1;
        //获得strIP
        int count = 0;
        for(i=0;i<ipLen;i++){
            strIP[count++]=str[numCount][i];
        }

        //获得strKey
        count=0;
        for(i=ipLen+1;i<len;i++){
            strKey[count++]=str[numCount][i];
        }


        //判断IP是否符合规范
        bool flag1 = fun(strIP,ipLen,'.');


        //判断掩码是否符合规范
        int *keyArray = splitFun(strKey,keyLen,'.');

        bool flag2 = funKey(keyArray);


        if(flag1 && flag2){
            //符合规范
            //获得IP的四个数字
            int *array = splitFun(strIP,ipLen,'.');
            //判断属于哪类IP
            if(array[1]>=0 && array[1]<=255 && array[2]>=0 && array[2]<=255 &&
               array[3]>=0 && array[3]<=255 ){
                if(array[0]>=1 && array[0]<=126){
                    num[0]++;
                }else if(array[0]>=128 && array[0]<=191){
                    num[1]++;
                }else if(array[0]>=192 && array[0]<=223){
                    num[2]++;
                }else if(array[0]>=224 && array[0]<=239){
                    num[3]++;
                }else if(array[0]>=240 && array[0]<=255){
                    num[4]++;
                }
                //判断是否是私有
                if(
                   (array[0]>=10 && array[0]<=10 && array[1]>=0 && array[1]<=255 &&
                    array[2]>=0 && array[2]<=255 && array[3]>=0 && array[3]<=255)
                   ||
                   (array[0]>=172 && array[0]<=172 && array[1]>=16 && array[1]<=31 &&
                    array[2]>=0 && array[2]<=255 && array[3]>=0 && array[3]<=255)
                   ||
                   (array[0]>=192 && array[0]<=192 && array[1]>=168 && array[1]<=168 &&
                    array[2]>=0 && array[2]<=255 && array[3]>=0 && array[3]<=255)
                   )
                {
                    num[6]++;
                }
            }else{
                num[5]++;
            }
        }else{
            //不符合规范
            num[5]++;
        }

        numCount++;

    }

    //输出结果
    for(i=0;i<7;i++){
        if(i!=6)
        cout<<num[i]<<" ";
        else
        cout<<num[i];
    }
    return 0;
}

字符串统计

#include<iostream>
#include<cstdio>
using namespace std;
int main(){
    //数据初始化
    char str[1000];
    gets(str);
    //获取数据长度
    int i;
    int len=0;
    for(i=0;str[i]!='\0';i++){
        len++;
    }
    //统计
    int charNum=0;
    int blankNum=0;
    int numberNum=0;
    int otherNum=0;
    for(i=0;i<len;i++){
        if((str[i]>='A' && str[i]<='Z')||(str[i]>='a' && str[i]<='z')){
            charNum++;
        }else if(str[i]==' '){
            blankNum++;
        }else if(str[i]>='0' && str[i]<='9'){
            numberNum++;
        }else{
            otherNum++;
        }
    }
    //输出结果
    cout<<charNum<<endl<<blankNum<<endl<<numberNum<<endl<<otherNum;
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值