a2316565897 发表于 2020-9-6 17:20:12

大二C语言作业求助

本帖最后由 a2316565897 于 2020-9-6 17:57 编辑

这三道题,求求了,本人真的很急,过几天就要交了,第一题难点在于多行输入

巴巴鲁 发表于 2020-9-6 17:20:13

本帖最后由 巴巴鲁 于 2020-9-7 10:17 编辑

第一题:
#include <stdio.h>
int fun(int num);
int main()
{
                int i, j, count;
                j = count = 0;
              int arr; // 最多12个数
      
                while(1)
                {
                       
                        char ch;
                       
                        if((ch = getchar()) == '\n')
                            {
                            break;
                        }
                            else
                         {       
                        ungetc(ch, stdin);
                        scanf("%d",&i);
                        arr = fun(i);
                        count++; // 记录输入了多少数字
                            }
                    getchar();         // 缓冲输入的回车
               
                }
               
        for(i = 0; i < count;i++)
        {
                printf("%d\n",arr);
        }
       
      return 0;
}

int fun(int num)
{
                int i, fact = 1;
               
                for(i = 1; i <= num; i++)
                {
                        fact *= i;
                }
               
                return fact;
}

baige 发表于 2020-9-6 17:26:02

#include <stdio.h>

int main()
{
        int dp = {0};
        dp = 1;
        for(int i = 1; i <= 11; ++i)
                dp = dp * i;
        int num;
        while(scanf("%d",&num))
        {
                printf("%d\n",dp);       
        }               
        return 0;
}

wzchenrui 发表于 2020-9-6 17:37:23

想知道

a2316565897 发表于 2020-9-6 17:50:10

求求了三道题,急!~~~

a2316565897 发表于 2020-9-6 17:52:08

baige 发表于 2020-9-6 17:26


第一道题的难点是多行输入多行输出,你的程序不太对啊

zhfv587 发表于 2020-9-6 20:02:20

第一道题输入什么算结束输入呢

a2316565897 发表于 2020-9-7 06:59:55

zhfv587 发表于 2020-9-6 20:02
第一道题输入什么算结束输入呢

当这一行只有回车时结束

baige 发表于 2020-9-7 07:53:12

#include <stdio.h>

int main()
{
      int dp = {0};
      dp = 1;
      for(int i = 1; i <= 11; ++i)
                dp = dp * i;
      int num;
      while(1)
      {
              charch = getchar();
              if(ch == '\n')break;
              else {
                      ungetc(ch, stdin);
                      scanf("%d",&num);
                        }
              getchar();
            printf("%d\n",dp);      
      }               
      return 0;
}

巴巴鲁 发表于 2020-9-7 10:19:36

第三题也是和第一题一样在空行输入回车结束程序吗?

ljd884497 发表于 2020-9-7 12:04:16

本帖最后由 ljd884497 于 2020-9-7 12:13 编辑

临时写了第1题,不算严紧,还是能用

# include <stdio.h>

# define MAX 12


int InputNum (int arr[]); // 输入函数

int JieChen (int num); // 阶乘函数

int main (void)

{
        int arr;// 定义一个数组存放输入的整数
        int count = 0; // 定义一个计数器

        int i = 0;

        count = InputNum (arr);

        printf ("你输入数的阶乘是:\n");

        for (i = 0; i < count;i++)
        {
                printf ("%d\t%d\n",arr,JieChen(arr));
        }

        getchar();

        return 0;
}

int InputNum (int arr[])
{
        int tempNum = 0; // 输入的数字
        int count = 0;
        int i = 0;

        printf ("请输入0到11之间的整数\n(输入的整数小于0或大于11,或输入次数多于12次将结束输入):");

        scanf ("%d",&tempNum);

        while (tempNum >=0 && tempNum <= 11 && count <= 12)
        {

                count ++;
                arr = tempNum;

                printf ("请输入下一个数:");
                scanf ("%d",&tempNum);


        }

        return count;
}

int JieChen (int num)
{
        int sum = 1;

        while (num > 0)
                sum *= num--;

        return sum;
}

a2316565897 发表于 2020-9-8 14:11:41

巴巴鲁 发表于 2020-9-7 10:19
第三题也是和第一题一样在空行输入回车结束程序吗?

第三题题目中说的是#结束,大佬膜拜你,你把第一题做出来了,强

a2316565897 发表于 2020-9-8 14:12:22

ljd884497 发表于 2020-9-7 12:04
临时写了第1题,不算严紧,还是能用

# include


嗯~你这个我试了一下,不太行

a2316565897 发表于 2020-9-8 14:13:43

baige 发表于 2020-9-6 17:26


不好意思啊,你的还是不太对

巴巴鲁 发表于 2020-9-9 06:22:55

a2316565897 发表于 2020-9-8 14:11
第三题题目中说的是#结束,大佬膜拜你,你把第一题做出来了,强

好的,没事的时候我看看第三题,不过不一定能做出来。{:10_281:}

巴巴鲁 发表于 2020-9-9 06:51:21

噗噗,看错了,是第二题

巴巴鲁 发表于 2020-9-11 20:06:29

本帖最后由 巴巴鲁 于 2020-9-11 20:07 编辑

不知道行不行呐,感觉取巧了
#include <stdio.h>
#include <stdlib.h>
#define N 100 // 太大程序不会执行
int count = 0; // 定义全局变量

int min(int *arr);
int main(void)
{
                char ch;
                int input;
                int arr;
               
                while(1)
                {
                        scanf("%d",&input);
                        if(input == -1) // 当输入-1时程序结束
                        {
                                break;
                        }
                        arr = input;
                        printf("push %d\n",count);
                        printf("min = %d\n",min(arr));
                }
               
                return 0;
}

int min(int *arr)
{
                int i;
                int min = arr;
               
                for(i = 0; i < count; i++)
                {
                        if(min > arr)
                        {
                                min = arr;
                        }
                }
               
                return min;
}
页: [1]
查看完整版本: 大二C语言作业求助