大二C语言作业求助
本帖最后由 a2316565897 于 2020-9-6 17:57 编辑这三道题,求求了,本人真的很急,过几天就要交了,第一题难点在于多行输入 本帖最后由 巴巴鲁 于 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;
} #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;
} 想知道 求求了三道题,急!~~~ baige 发表于 2020-9-6 17:26
第一道题的难点是多行输入多行输出,你的程序不太对啊 第一道题输入什么算结束输入呢 zhfv587 发表于 2020-9-6 20:02
第一道题输入什么算结束输入呢
当这一行只有回车时结束 #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;
} 第三题也是和第一题一样在空行输入回车结束程序吗? 本帖最后由 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;
} 巴巴鲁 发表于 2020-9-7 10:19
第三题也是和第一题一样在空行输入回车结束程序吗?
第三题题目中说的是#结束,大佬膜拜你,你把第一题做出来了,强 ljd884497 发表于 2020-9-7 12:04
临时写了第1题,不算严紧,还是能用
# include
嗯~你这个我试了一下,不太行 baige 发表于 2020-9-6 17:26
不好意思啊,你的还是不太对
a2316565897 发表于 2020-9-8 14:11
第三题题目中说的是#结束,大佬膜拜你,你把第一题做出来了,强
好的,没事的时候我看看第三题,不过不一定能做出来。{:10_281:} 噗噗,看错了,是第二题 本帖最后由 巴巴鲁 于 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]