找错
那能不能再请教一个问题呀, 定义结构体用于存放人员的姓名和电话号码(11位数字)。从键盘输入10个同学姓名(以#结束输入)和电话号码。然后输入某个姓名,查找该人的电话号码。#include<stdio.h>
struct classmate
{
char name;
intmember;
};
main()
{struct classmate man;
struct classmate t;
int i;
char str;
for(i=0;getchar()!='#';i++)
{ scanf("%s%d",&man.name,&man.member) ;
}
printf("需查找的对象:");
gets(str);
for(i=0;;i++)
{
if(man.name==str)
{printf("%d",man.member); break;}
}
}
能不能运行一下找找错误呀,大佬,我发了这个好几个贴都发不出来 错的有点多
#include <stdio.h>
#include <string.h>
struct classmate {
char name;
//int member;
int member;
};
// main()
int main(void) {
struct classmate man;
// struct classmate t;
int i;
char str;
// for(i=0;getchar()!='#';i++)
//for(i = 0; getchar() != '#'; i++) {
for(i = 0; ; i++) {
int ch = getchar();
if(ch == '\n') ch = getchar();
if(ch == '#') break;
ungetc(ch, stdin);
//scanf("%s%d", &man.name, &man.member);
scanf("%s%d", man.name, &man.member);
}
printf("需查找的对象:");
// gets(str);
scanf("%s", str);
for(i = 0; ; i++) {
//if(man.name == str) {
if(!strcmp(man.name, str)) {
//printf("%d", man.member);
printf("%d\n", man.member);
break;
}
}
return 0;
}
人造人 发表于 2021-11-27 10:04
错的有点多
谢谢您! 人造人 发表于 2021-11-27 10:04
错的有点多
yi 111111111111
er 222222222222
#
需查找的对象:yi
-558038585
大佬大佬,为什么结果是这个样子呀{:10_266:} 辞树 发表于 2021-11-27 14:11
大佬大佬,为什么结果是这个样子呀
#include <stdio.h>
#include <string.h>
struct classmate {
char name;
//int member;
long member;
};
// main()
int main(void) {
struct classmate man;
// struct classmate t;
int i;
char str;
// for(i=0;getchar()!='#';i++)
//for(i = 0; getchar() != '#'; i++) {
for(i = 0; ; i++) {
int ch = getchar();
if(ch == '\n') ch = getchar();
if(ch == '#') break;
ungetc(ch, stdin);
//scanf("%s%d", &man.name, &man.member);
scanf("%s%ld", man.name, &man.member);
}
printf("需查找的对象:");
// gets(str);
scanf("%s", str);
for(i = 0; ; i++) {
//if(man.name == str) {
if(!strcmp(man.name, str)) {
//printf("%d", man.member);
printf("%ld\n", man.member);
break;
}
}
return 0;
}
人造人 发表于 2021-11-27 14:26
是数据溢出了吗 辞树 发表于 2021-11-27 14:31
是数据溢出了吗
对 人造人 发表于 2021-11-27 14:26
大佬,我刚刚试了一下,只有double类型的才可以输入11位号码{:10_254:} 辞树 发表于 2021-11-27 14:43
大佬,我刚刚试了一下,只有double类型的才可以输入11位号码
也就是说,换成 long 的这个代码在你那边还是不行?
在我这边换成 long 就可以了
long 不行,那就换成 long long 试试
#include <stdio.h>
#include <string.h>
struct classmate {
char name;
//int member;
long long member;
};
// main()
int main(void) {
struct classmate man;
// struct classmate t;
int i;
char str;
// for(i=0;getchar()!='#';i++)
//for(i = 0; getchar() != '#'; i++) {
for(i = 0; ; i++) {
int ch = getchar();
if(ch == '\n') ch = getchar();
if(ch == '#') break;
ungetc(ch, stdin);
//scanf("%s%d", &man.name, &man.member);
scanf("%s%lld", man.name, &man.member);
}
printf("需查找的对象:");
// gets(str);
scanf("%s", str);
for(i = 0; ; i++) {
//if(man.name == str) {
if(!strcmp(man.name, str)) {
//printf("%d", man.member);
printf("%lld\n", man.member);
break;
}
}
return 0;
}
人造人 发表于 2021-11-27 14:48
也就是说,换成 long 的这个代码在你那边还是不行?
在我这边换成 long 就可以了
🆗了,谢谢大佬{:7_113:}
页:
[1]