숫자와 문자열 S를 입력으로 전달하려고합니다. 여기서 문자열 S는 이름 뒤에 쉼표가오고 그 뒤에 여러 자리 정수가옵니다. 프로그램은 해당 번호가 가장 높은 이름을 표시해야합니다. 출력쉼표로 구분 된 문자열로 이름과 정수 값을 읽는 방법은 무엇입니까?
4
Will,13
Bob,7
Mary,56
Gail,45
하는 :
Mary
메리에 대응하는 번호가 보낸 최대 인 56이다
입력을 고려한다. 는내가 직면하고 문제 즉 여기
w[][] a[][]
나는 2 차원 배열 시도 두 배열의 이름과 전화 번호를 얻는 것입니다,하지만 난 쉼표로 구분 된 값을 읽을 수 없습니다입니다. 그래서 기본적으로 내가 문자 배열에 쉼표와 숫자 배열에 쉼표 후 번호 앞에 이름을 추출 할
#include <stdio.h>
#include <ctype.h>
int main(){
char W[200][1000];//Two dimensional arrays to store names
int a[200];//To store the numbers
int i,n;
scanf("%d",&n);//Number of Strings
for (i=0; i<n; i++) {
scanf("%[^\n]s",W[i]);//To read the name
getchar();//To read the comma
scanf("%d",&a[i]);//To read the number
}
printf("\n");
for (i=0; i<n; i++) {
printf ("W[%d] = %s a[%d] = %d\n" ,i,W[i],i,a[i]);//Displaying the values
}
//To find out the maximum value
max = a[0];
for(i=0;i<n;i++){
if(a[i]>=max) { a[i] = max; pos = i; }
}
printf("\n%s",W[pos]); //Print the name corresponding to the name
return(0);
}
: 이 내 코드입니다.
이 코드를 어떻게 수정할 수 있습니까?
예 나는 scanf와 사용할 수없는 사실에 동의합니다. 사실 fgets()로 시도 할 수 있습니다. Thanks @ Basile Starynkevitch –
나는 malloc과 scanf() 포맷팅을 사용하는 솔루션을 가지고있다. 당신의 제안에 아주 좋을 것이다. @Basile Starynkevitch –