我正在向您显示的程序要求用户输入否。并询问每个人吃了多少煎饼。之后,它会打印最多数量的煎饼。
好的,到目前为止,我发现它很容易做到。
我想做的是(不使用指针)说明吃得最多的人。

这是我到目前为止所做的。

#include <stdio.h>

int main()
{
int person, i;
int pancake[50];

printf("Enter Number Of People: ");
scanf("%d", &person);

for (i=1; i<=person; i++)
{
    printf("Person [%d]: ", i);
    scanf("%d",&pancake[i]);
}

for (i=1; i<=person; i++)
  {
    if (pancake[1]<pancake[i])
    {
        pancake[1] = pancake[i];
    }
  }
  printf("Most pancakes eaten is %d\n", pancake[1]);
}


有什么想法如何找到它,或者我有必要使用指针吗?

最佳答案

无需使用指针。我正在发布完整版1。代码,因为代码中存在许多错误/错别字。

#include <stdio.h>
#include <string.h>
int main(void)
{
    int person, i;
    int pancake[50];

    printf("Enter Number Of People: ");
    scanf("%d", &person);
    char name[person][30];              // 2D array to store the name of persons. Note that I used variable length arrays.

   for (i=0; i < person; i++)
   {
       printf("Person [%d]: ", i+1);
       scanf("%d",&pancake[i]);
       printf("Person %d name: ", i+1);
       getchar();                       // To eat up the newline left behind by previous scanf.
       fgets(name[i], 30, stdin);       // To read the persons name. I removed the scanf.
   }

   for (i=0; i<person-1; i++)
   {
       if (pancake[0]<pancake[i+1])
       {
           pancake[0] = pancake[i+1];
           strcpy(name[0] , name[i+1]);  // A function in <string.h> to copy strings.
       }
   }
   printf("Most pancakes eaten is %d by %s \n", pancake[0], name[0]);
}




1.一些有用的链接:
I. fscanf
二。 getchar
三, strcpy

关于c - 了解数组和函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21415502/

10-09 18:13