首页 > 解决方案 > C 编程 scanf 帮助

问题描述

我正在尝试为课程构建一个表单/gpa 计算器,但是当使用 scanf 输入课程数量时,无论我输入什么,输出都是 6,487,576。

int main()
{
    int opt;
    int c;




    printf("*******************************\n");
    printf("** Fanshawe Grade Calculator **\n");
    printf("*******************************\n");

    printf("Please Choose an Option:\n");
    printf("[1] Enter Your Marks\n");
    printf("[2] Quit\n");

    scanf("%d", &opt);

    switch(opt) {
      case 1 :
         printf("********************************************************\n");
         printf("** Enter Your Marks For Your Courses (Up to 10 Only): **\n");
         printf("********************************************************\n");

         scanf("%i", &c);
         printf("You Have Entered %i Classes!\n", &c);

         /*int i;
         for(i=1;i=c;i++) {
            printf("Enter Your Mark for Class #%i\n", &i);
         }*/

         break;

      case 2 :
         printf("GoodBye!");
         exit(0);
         break;
   }
    return 0;
}

请帮忙!

标签: c

解决方案


当您使用%iwith 时scanf(),它也可以让您输入十六进制和八进制数(这不是这里解释的问题)。但是,您不应该在使用&时使用printf(),因为它会显示变量的内存位置而不是存储在其中的值。

尝试这个:

case 1 :
         printf("********************************************************\n");
         printf("** Enter Your Marks For Your Courses (Up to 10 Only): **\n");
         printf("********************************************************\n");

         scanf("%d", &c);
         printf("You Have Entered %d Classes!\n", c);
         break;

推荐阅读