c語言實現valid模式,c語言 val

本文目錄一覽:

c語言設計密碼檢測程序?

#include stdio.h

#define UC (1U1) // upper case

#define LC (1U2) // lower case

#define NUM (1U3) // 0-9

#define ALL (UC|LC|NUM)

int check(const char pass1[], const char pass2[])

{

const char *p = pass1[0];

unsigned int flag = 0;

if (strlen(pass1) 6 || strlen(pass1) 8)

{

printf(“password length is 6 to 8.\n”);

return 1;

}

if (strcmp(pass1, pass2))

{

printf(“the tow passwords are diffrence.\n”);

return 2;

}

while (*p)

{

if (*p = ‘a’ *p = ‘z’) flag |= LC;

else if (*p = ‘A’ *p = ‘Z’) flag |= UC;

else if (*p = ‘0’ *p = ‘9’) flag |= NUM;

else

{

printf(“in valid charactor: %c.\n”, *p);

return 3;

}

++p;

}

if (flag == ALL) return 0;

if ((flag UC) == 0)

{

printf(“lack of uppercase.\n”);

}

if ((flag LC) == 0)

{

printf(“lack of lowercase.\n”);

}

if ((flag NUM) == 0)

{

printf(“lack of number.\n”);

}

return -1;

}

int main(int argc, char *argv[])

{

char pass1[100];

char pass2[100];

do {

printf(“input password:”);

scanf(“%s”, pass1);

printf(“repeat password:”);

scanf(“%s”, pass2);

} while (check(pass1, pass2) != 0);

return 0;

}

C語言問題改正~

#includestdio.h

#includestdlib.h

int ID(char []);

char id[7];

int main()

{ int i;

printf(“Please input your four digit ID number: “);

gets(id);

if(ID(id)==0)

printf(“You input wrong,please input again”);

else if(ID(id)==1)

puts(id);

ID(id);

return 0;

}

int ID(char val[])

{ int i;

int valid; //這裡要初始化改為 int valid=1;

if(val[0]==’\0′)

valid=0;

if(val[0]’A’||val[0]’Z’)

valid=0;

if(val[1]’A’||val[1]’Z’)

valid=0;

for(i=2;i7;i++)

{

if(val[i]1||val[i]9) //這裡改為if(val[i]’1’||val[i]’9′)

valid=0;

}

return valid;

}

測試通過!

C語言中,如何驗證輸入日期的正確性!~

主要驗證三個信息:

a.驗證月數是否在1~12,m  0  m = 12

b.驗證日數是否超過當月,d  0  d = month[m – 1]

c.對平閏年的判斷,if ((y % 4 == 0  y % 100 != 0) || y % 400 == 0)month[1] = 29

常式:

#include stdio.h

static int is_valid_date(int y, int m, int d)

{

        int month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

        if ((y % 4 == 0  y % 100 != 0) || y % 400 == 0)

                month[1] = 29; 

        return  m  0  m = 12  d  0  d = month[m – 1]; 

}

int main(void)

{

        int y, m, d;

        scanf(“%4d-%2d-%2d”, y, m, d);

        if (is_valid_date(y, m, d)) 

                printf(“valid date\n”);

        else

                printf(“invalid date\n”);

        return 0;

}

用C語言編程 求助~

代碼有點多,慢慢看吧~~~

#include stdio.h

struct person

{

char name[8];

char tel[15];

char addr[50];

};

char filename[20];

FILE *fp;

void creat();

void output();

void search();

void append();

void modify();

void deletes();

main()

{

int m;

creat();

while(1)

{

printf(“\n\n添加,請按1”);

printf(“\n查找,請按2”);

printf(“\n修改,請按3”);

printf(“\n刪除,請按4”);

printf(“\n輸出,請按5”);

printf(“\nExit,please press 0\n”);

scanf(“%d”,m);

if(m=0m=5)

{

switch(m)

{

case 1:append();

break;

case 2:search();

break;

case 3:modify();

break;

case 4:deletes();

break;

case 5:output();

break;

case 0:exit();

}

printf(“\n\n操作完畢,請再次選擇”);

}

else

printf(“\n\n選擇錯誤,請再次選擇”);

}

}

void creat()

{

struct person one;

long s1;

printf(“\n請輸入通訊薄名:”);

scanf(“%s”,filename);

if((fp=fopen(filename,”w”))==NULL)

{

printf(“\n不能建立通訊薄”);

exit();

}

fprintf(fp,”%-10s%-20s%-50s\n”,”姓名”,”電話號碼”,”住址”);

printf(“\n請輸入姓名、電話號碼及住址(以0結束)\n”);

scanf(“%s”,one.name);

while(strcmp(one.name,”0″))

{

scanf(“%s%s”,one.tel,one.addr);

fprintf(fp,”%-10s%-20s%-50s\n”,one.name,one.tel,one.addr);

scanf(“%s”,one.name);

}

fclose(fp);

}

void output()

{

struct person one;

if((fp=fopen(filename,”r”))==NULL)

{

printf(“\n不能打開通訊薄”);

exit();

}

printf(“\n\n%20s\n”,”通訊薄”);

while(!feof(fp))

{

fscanf(fp,”%s%s%s\n”,one.name,one.tel,one.addr);

printf(“%-10s%-20s%-50s”,one.name,one.tel,one.addr);

}

fclose(fp);

}

void append()

{

struct person one;

if((fp=fopen(filename,”a”))==NULL)

{

printf(“\n不能打開通訊薄”);

exit();

}

printf(“\n請輸入添加的姓名、電話號碼及住址\n”);

scanf(“%s%s%s”,one.name,one.tel,one.addr);

fprintf(fp,”%-10s%-20s%-50s\n”,one.name,one.tel,one.addr);

fclose(fp);

}

void search()

{

int k=0;

char namekey[8];

struct person one;

printf(“\n請輸入姓名:”);

scanf(“%s”,namekey);

if((fp=fopen(filename,”rb”))==NULL)

{

printf(“\n不能打開通訊簿”);

exit();

}

while(!feof(fp))

{

fscanf(fp,”%s%s%S\n”,one.name,one.tel,one.addr);

if(!strcmp(namekey,one.name))

{

printf(“\n\n已查到,記錄為:”);

printf(“\n%-10s%-18s%-50s”,one.name,one.tel,one.addr);

k=1;

}

}

if(!k)

printf(“\n\n對不起,通訊簿中沒有此人的記錄。”);

fclose(fp);

}

void modify()

{

int m,k=0;

long offset;

char namekey[8];

struct person one;

printf(“\n請輸入姓名:”);

scanf(“%s”,namekey);

if((fp=fopen(filename,”r+”))==NULL)

{

printf(“\n不能打開通訊簿”);

exit();

}

while(!feof(fp))

{

offset=ftell(fp);

fscanf(fp,”%s%s%s\n”,one.name,one.tel,one.addr);

if(!strcmp(namekey,one.name))

{

k=1;

break;

}

}

if(k)

{

printf(“\n已查到,記錄為:”);

printf(“\n%-10s%-18s%-50s”,one.name,one.tel,one.addr);

printf(“\n請輸入新姓名、電話號碼及住址:”);

scanf(“%s%s%s”,one.name,one.tel,one.addr);

fseek(fp,offset,SEEK_SET);

printf(“%ld”,ftell(fp));

fprintf(fp,”%-10s%-20s%-50s\n”,one.name,one.tel,one.addr);

}

else

printf(“\n對不起,通訊簿中沒有此人的記錄。”);

fclose(fp);

}

void deletes()

{

int m,k=0,flag;

long offset1,offset2;

char namekey[8],valid[4];

struct person one;

printf(“\n請輸入姓名:”);

scanf(“%s”,namekey);

if((fp=fopen(filename,”r+”))==NULL)

{

printf(“\n不能打開通訊簿”);

exit();

}

while(!feof(fp))

{

offset1=ftell(fp);

fscanf(fp,”%s%s%s\n”,one.name,one.tel,one.addr);

if(!strcmp(namekey,one.name))

{

k=1;

break;

}

}

if(k)

{

printf(“\n已查到,記錄為”);

printf(“\n%-10s%-18s%-50s”,one.name,one.tel,one.addr);

printf(“\n確實要刪除,按1;不刪除,按0:”);

scanf(“%d”,m);

if(m)

{

fseek(fp,offset1,SEEK_SET);

fprintf(fp,”%-10s%-20s%-50s\n”,””,””,””);

}

}

else

printf(“‘n對不起,通訊簿中沒有此人的記錄。”);

fclose(fp);

}

Debug Assertion Failed! 求教高手!C語言

兄弟,你這個程序 是有問題,不過是個小問題,估計是你粗心吧!

我也看好長時間才發現的;你的程序 我 是用vc6.0運行的。結果就發現了這個問題,我在要修改的地方加了這句話,你看下吧「//*************isValid是個函數,你沒有在後面加函數的參數啊,應該改這樣例如:if(!isValid(a,b))」

希望能幫到你的忙

#include stdio.h

#include ctype.h

#define NUM_ATOMS 8

#define MAX_FORMULA_LEN 20

int isValid(char c[], char valid_char[]);

int findBracketMatch(char c[], char matchBracket, int start);

int doBracesMatch(char c[]);

void printFormula(char c[]);

int molecularWeight(char c[],char valid_char[],int);

int main()

{

char c[MAX_FORMULA_LEN];

char valid_char[NUM_ATOMS]={‘H’,’S’,’O’,’N’,’C’,’B’,’K’,’P’};

int k = 0;

char d = ‘ ‘;

printf(“Please enter the formula, put a ‘.’ behind if you want to finish: “);

while(!isValid(c, valid_char))

{

while (d != ‘.’)

{

d = toupper(getchar());

c[k] = d;

k++;

}

}

getchar();

if(!doBracesMatch(c))

{

printf(“Error in braces….. “);

}

else

isValid(c, valid_char);

printFormula(c);

printf(“The molecular weight for the molecule is:%d\n”,molecularWeight(c,valid_char,0));

}

int isValid(char c[], char valid_char[])

{

int i,j,valid=1;

if(isdigit(c[0]))

return 0;

while(!valid c[j]!=’.’)

{

if(isalpha(c[j]))

{

i=0;

while (c[i] != valid_char[NUM_ATOMS] i NUM_ATOMS)

i++;

valid=(i==NUM_ATOMS) ? 0:1;

}

else

if(c[j]=='(‘ || c[j]=='[‘ || c[j]=='{‘)

valid=isdigit(c[j+1]) ? 0:1;

j++;

}

return (valid);

}

int findBracketMatch (char c[], char matchBracket, int start)

{

while(c!=matchBracket)

{

if(c==’.’ || c==’)’ || c==’]’ || c==’}’)

return 0;

else

if(c=='(‘)

start=findBracketMatch(c, ‘)’ , start+1);

else

if(c=='[‘)

start=findBracketMatch(c, ‘]’, start+1);

else

if(c=='{‘)

start=findBracketMatch(c, ‘}’, start+1);

start++;

}

return (start);

}

int doBracesMatch(char c[])

{

if (findBracketMatch(c, ‘.’ ,0)) // start point: find ‘.’

return 1;

else

return 0;

}

void printFormula(char c[])

{

int i;

if (!isValid) //*************isValid是個函數,你沒有在後面加函數的參數啊,應該改這樣例如:if(!isValid(a,b))

printf(“the formula is invalid, please enter again.:”);

else

{

printf(“The formula you have inputed is :\n”);

for(i=0;c[i]!=’.’;i++)

printf(“%c”,c[i]);

printf(“\n”);

}

}

int molecularWeight(char c[],char valid_char[], int i)

{

int k,weight=0;

int digit;

int atom[]={1,2,3,4,5,6,7,8};

while(c[i]!=’.’)

{

if(c[i]=='(‘ || c[i]=='[‘ || c[i]=='{‘)

{

weight+=molecularWeight(c,valid_char,i+1);

break;

}

else

if(isalpha(c[i]))

{

k=0;

while(c[i]!=valid_char[k] k8)

k++;

if(isdigit(c[i+1]))

{

digit=c[i+1]-‘0’;

weight=atom[k]*digit;

}

else

weight+=atom[k];

}

else

if(c[i]==’)’ || c[i]==’]’ || c[i]==’}’)

{

if(isdigit(c[i+1]))

{

digit=c[i+1]-‘0’;

weight*=digit;

}

}

i++;

}

return (weight);

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/197119.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-03 13:27
下一篇 2024-12-03 13:27

相關推薦

  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28

發表回復

登錄後才能評論