#include<stdio.h>
#include<stdlib.h>
struct cl{
char name[3];
int num;
}client[3];
void input(struct cl client[],int m)
{
int i;
printf("please enter client inf:\n");
for(i=0;i<m;i++)
{
scanf("%s:%d",client[i].name,&client[i].num);
}
}
int search(struct cl client[],int a)
{
int i,n=3;
for(i=0;i<n;i++)
{
if(client[i].num==a)
{
return 1;
break;}
else
return -1;
}
}
void main()
{
int a,x,m=3;
input(client,m);
printf("ent luky num:");
scanf("%d",&a);
x=search(client,a);
{
if(x<0)
printf("no\n");
else
printf("the lucky one is:%s\n",client[x].name);
}
system("pause");
}
uj5u.com熱心網友回復:
把scanf里面那個:去掉…
uj5u.com熱心網友回復:
我想問的是怎么程式運行后得不到我想要的結果?無論我輸入什么,都無法找到號碼對應的名字?是哪里出了問題?求大神指點~uj5u.com熱心網友回復:
沒看出來哪里問題,還有就是你要詳細描述一下現象,另外,建議是你可以在input里面添加列印,看看你從鍵盤輸入的和列印出來的是不是相同的東西uj5u.com熱心網友回復:
你的scanf里面輸入的字串和數字想用:分割,但是程式認為你輸入的:也為輸入字串的一部分,,,所以num里面根本就沒有值,所以你當然得不到你想要的答案了...
uj5u.com熱心網友回復:
你的scanf里面輸入的字串和數字想用:分割,但是程式認為你輸入的:也為輸入字串的一部分,,,所以num里面根本就沒有值,所以你當然得不到你想要的答案了...
請問怎么解決這個問題?謝謝!
uj5u.com熱心網友回復:
請問怎么解決這個問題?謝謝!
不是必須用:的話 改用空格就行了
uj5u.com熱心網友回復:
謝謝!
uj5u.com熱心網友回復:
不是必須用:的話 改用空格就行了
可是如果非要用咋辦啊?有解決辦法么?謝謝
uj5u.com熱心網友回復:
你可以考慮分開接收name和num,非要一次接收2種引數輸入嗎uj5u.com熱心網友回復:
你的scanf里面輸入的字串和數字想用:分割,但是程式認為你輸入的:也為輸入字串的一部分,,,所以num里面根本就沒有值,所以你當然得不到你想要的答案了...
請問怎么解決這個問題?謝謝!
不是必須用:的話 改用空格就行了
printf("please enter client inf:\n");
for (i = 0; i < m; i++)
{
int ch;
char *p = client[i].name;
while((ch = getchar()) != ':'){
*p = ch;
p++;
}
scanf("%d", &client[i].num);
printf("%s, %d\n", client[i].name, client[i].num);
}
可以這樣
可是如果非要用咋辦啊?有解決辦法么?謝謝
uj5u.com熱心網友回復:
你的scanf里面輸入的字串和數字想用:分割,但是程式認為你輸入的:也為輸入字串的一部分,,,所以num里面根本就沒有值,所以你當然得不到你想要的答案了...
請問怎么解決這個問題?謝謝!
不是必須用:的話 改用空格就行了
可是如果非要用咋辦啊?有解決辦法么?謝謝
printf("please enter client inf:\n");
for (i = 0; i < m; i++)
{
int ch;
char *p = client[i].name;
while((ch = getchar()) != ':'){
*p = ch;
p++;
}
scanf("%d", &client[i].num);
printf("%s, %d\n", client[i].name, client[i].num);
}
可以這樣
uj5u.com熱心網友回復:
你的scanf里面輸入的字串和數字想用:分割,但是程式認為你輸入的:也為輸入字串的一部分,,,所以num里面根本就沒有值,所以你當然得不到你想要的答案了...
請問怎么解決這個問題?謝謝!
不是必須用:的話 改用空格就行了
printf("please enter client inf:\n");
for (i = 0; i < m; i++)
{
int ch;
char *p = client[i].name;
while((ch = getchar()) != ':'){
*p = ch;
p++;
}
scanf("%d", &client[i].num);
printf("%s, %d\n", client[i].name, client[i].num);
}
可以這樣
可是如果非要用咋辦啊?有解決辦法么?謝謝
叩謝!!
uj5u.com熱心網友回復:
你可以考慮分開接收name和num,非要一次接收2種引數輸入嗎
謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/72822.html
標籤:新手樂園
上一篇:MinGW為什么忽然之間不能用了,然后重新安裝了一個,無論怎么設定環境變數,用cmd測驗都顯示識別不出指令,有誰能幫幫我啊,心態崩了啊5555
下一篇:一道題,錯了,求救!
