#include<stdio.h>
int a[3]={45,77,21},b[3]={1001,1008,1007},i,n=3,sum=0,cont=1,v,f,jude,G,J,m,t=1;
char ch;
int FindStudent(int b[])
{
scanf("%d",&f);
for(i=0; i<n; i++)
{
if(b[i]==f)
return i;
}
return -5;
}
int main()
{
printf("請輸入學生學號:\n");
J=FindStudent(b);
if(J>0)
printf("該學生成績為:%d\n",a[J]);
else
printf("查無此人\n");
do
{
printf("是否繼續查詢(y/n):\n");
scanf("%c",&ch);
if(ch=='y')
{
printf("請輸入學生學號:\n");
J=FindStudent(b);
if(J>0)
printf("該學生成績為:%d\n",a[J]);
else
printf("查無此人\n");
}
else
t=-1;
}
while(t>0);
return 0;
}
uj5u.com熱心網友回復:
應該是系統編碼的問題uj5u.com熱心網友回復:
可是運行的順序也不對呀uj5u.com熱心網友回復:
1001就是b[0] 回傳了0, 可你的if(J>0)
printf("該學生成績為:%d\n",a[J]);
else
printf("查無此人\n");
就是查無此人啦
J>=0 才對
uj5u.com熱心網友回復:
理想很豐滿,現實就那樣后面還有一個 J>0 的判斷,在do {} while()回圈體內
中文亂碼, 要看你從哪兒copy過來的文字了, 文字有很多編碼, GB23123/GBK的雙位元組編碼才對。
如果是unicode/utf-8/utf-16之類的就不行了
uj5u.com熱心網友回復:
#include<stdio.h>
int a[3]={45,77,21},b[3]={1001,1008,1007};//,i,n=3,sum=0,cont=1,v,f,jude,G,J,m,t=1;
int n = 3;
//char ch;
int FindStudent(int b[])
{
int i, no;
scanf("%d",&no);
for(i=0; i<n; i++)
{
if(b[i]==no)
return i;
}
return -5;
}
int main()
{
int idx, ch;
printf("請輸入學生學號:\n");
idx=FindStudent(b);
//if(idx>0)
if(idx >= 0)
printf("該學生成績為:%d\n",a[idx]);
else
printf("查無此人\n");
do
{
printf("是否繼續查詢(y/n):\n");
while ((ch = getchar()) == '\n')
;
//scanf("%c",&ch);
if(ch=='y')
{
printf("請輸入學生學號:\n");
idx=FindStudent(b);
//if(idx>0)
if(idx >= 0)
printf("該學生成績為:%d\n",a[idx]);
else
printf("查無此人\n");
}
/*
else
t =-1;
*/
} while(ch != 'y');
return 0;
}
供參考~
uj5u.com熱心網友回復:
這個也不能實作無限次查詢呀uj5u.com熱心網友回復:
int main(){
printf("請輸入學生學號:\n");
J=FindStudent(b);
do
{
if(J>=0)
printf("該學生成績為:%d\n",a[J]);
else
printf("查無此人\n");
printf("是否繼續查詢(y/n):\n");
scanf("%c",&ch);
}
while(ch=='y');
return 0;
}
為什么這樣while還是不起作用?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/133560.html
標籤:C語言
上一篇:int資料在txt中的大小問題
