2012-10-14 82 views
0

程序將字符串存儲爲字符串數組。字符串可以是名稱,地址等。 •程序顯示一個選擇屏幕,允許用戶輸入字符串(最多16個字符串,最多包含128個字符的 ),從數據庫中刪除字符串,查看數據庫中的字符串,搜索 字符串,然後退出該程序。爲什麼不能讀取switch語句的功能

#include <stdio.h> 
#include <conio.h> 
#include <stdlib.h> 
void clearscreen() 
{ 
    system("cls"); 
} 

int main() 
{ 
    int b1,b,c; 
    char data[20]; 
    int number,a; 

    do{ 
     clearscreen(); 
     printf("How many data do you want to store "); 
     scanf("%d",&number); 

     for(a=1;a<=number;a++) 
     { 
      printf("Input your data %d_No:  ",a); 
      scanf("%s",&data[a]); 
     } 

     printf("What action do you want to do\n [1]Remove data\n [2]View data\n [3]Search data\n[4] Quit"); 
     scanf("%d",&b1); 

     switch(b1) 
     { 
      case 1: 

       clearscreen(); 
       break; 
      case 2: 
       for(c=1;c=number;c++) 
       { 
        printf("%d:%s",a,data[a]); 
       } 
       break; 
      case 3: 
       break; 
      case 4: 
       return 0; 
       break; 
     } 

     printf("\nDO you want to continue\n[1] YES\n [2] No "); 
     scanf("%d",&b); 
     if (b==2) 
     { 
      return 0; 
     } 
    } while(b !=2); 
} 

程序正在運行,當我切換到2它不能讀取的INT數和char數據 爲什麼呢?我該怎麼辦?

+0

您應該更好地格式化代碼,在編譯器中啓用所有警告和調試信息,嘗試編寫標準符合代碼(注意''不是標準代碼),並學習如何使用調試器,然後逐步使用它步。 –

+0

你預計會發生什麼?發生什麼事? - 情況2中的for循環看起來很奇怪:'for(c = 1; c = number; C++)' - 它應該是<=還是什麼? – John3136

回答

0

的情況下,2使用c變量&使用c<=number代替c=number

for(c=1;c<=number;c++) 
       { 
        printf("%d:%s",c,data[c]); 
       } 
2
for(c=1;c=number;c++) 
    printf("%d:%s",a,data[a]); 

我在這裏看到了三個問題。首先,根據您的數據輸入循環,您可能意思是c <= number

第二個是你使用a作爲數組索引而不是你應該使用的c

最後是數組是從零開始的,所以int a[20]給你a[0]到(含)。換句話說,你的循環應該從0number - 1而不是1number

相關問題