C语言课程设计作业·,求求了·,救救孩子
课程设计的题目,救救孩子吧 发代码被审核了 你要的这7个程序,我这里都有现成的,可是你发的是悬赏帖,我除了得到你这30个鱼币外,什么也得不到啊。可是,鱼币对我来说也没有什么用呀 风过无痕1989 发表于 2020-11-30 22:16你要的这7个程序,我这里都有现成的,可是你发的是悬赏帖,我除了得到你这30个鱼币外,什么也得不到啊。可 ...
有现成的吗哥,发其他的贴不就更加啥也没有了吗,求一个源代码 冯云星 发表于 2020-11-30 22:23
有现成的吗哥,发其他的贴不就更加啥也没有了吗,求一个源代码
发普通的求助帖子,你选为最佳答案,系统给我的奖励是:鱼币+3,荣誉+2,技术+1
先说鱼币,在论坛久了,自然不缺,还是购买了会员,鱼币也就一文不值了
再说荣誉,每天登录回帖子,也不那么重要
在论坛,最重要的是技术值,它是买不来的,通过每一个最佳答案,得一个,所以就很重要了。
算了,反正也没有其他的事,我将这7个程序整合到一块,再调试好,一个小时后,你再来领取吧 风过无痕1989 发表于 2020-11-30 22:35
发普通的求助帖子,你选为最佳答案,系统给我的奖励是:鱼币+3,荣誉+2,技术+1
先说鱼币,在论坛久了, ...
原来如此,懂了懂了,谢谢哥 冯云星 发表于 2020-11-30 22:23
有现成的吗哥,发其他的贴不就更加啥也没有了吗,求一个源代码
三个数排序是什么规则?由大到小,还是由小到大? 风过无痕1989 发表于 2020-11-30 22:49
三个数排序是什么规则?由大到小,还是由小到大?
都可以,老师没要求 #include <stdio.h>
#include <stdbool.h>
#include <math.h>
#include <limits.h>
#define max(a,b) (a > b ? a : b)
#define min(a,b) (a > b ? b : a)
void init(){
printf("\t\t\t1) 将3个数排序\n\
2) 闰年识别\n\
3) 三角形面积计算\n\
4) 简单四则运算\n\
5) 求10个数的最大最小值\n\
6) 用选择法将10个数排序\n\
7) 用二分法算法查找\n\
8) 退出\n\n");
}
void SelectSort(int a[],int n)
{
int i,j,temp,max;
for(i=0;i<n-1;i++)
{
max=i;
for(j=i+1;j<n;j++)
{
if(a<a)
{
max=j;
}
}
if(max!=i)
{
temp=a;
a=a;
a=temp;
}
}
}
void print(int arr[], int n){
if(n == 0)return ;
printf("%d",arr);
for(int i = 1; i < n; ++i){
printf(" %d",arr);
}
putchar('\n');
}
void leap_year(){
int year;
printf("请输入一个年份: ");
scanf("%d",&year);
if(year%4==0&&year%100!=0||year%400==0)
printf("%d是润年",year);
else printf("%d不是润年");
putchar('\n');
}
void triangle(){
double a, b, c;
printf("请输入三角形的三条边: ");
scanf("%lf %lf %lf", &a, &b, &c);
if( a + b > c && a + c > b && b + c > a )
{
double area , s ;
s = ( a + b + c ) / 2.0;
area = sqrt ( s * ( s - a ) * ( s - b ) * ( s - c ) );
printf("三角形的面积为: %.2f\n", area);
}
else printf("输入的三条边不能构成三角形\n");
}
void compute(){
double a,b;
printf("请输入2个数字: ");
scanf("%lf%lf",&a,&b);
printf("%.2lf + %.2lf = %.2lf\n\
%.2f - %.2f = %.2f\n\
%.2f * %.2f = %.2f\n\
%.2f / %.2f = %.2f\n",a,b,a+b,a,b,a-b,a,b,a*b,a,b,a/b);
}
void maxmin(int *arr, int n){
int mx = INT_MIN, mi = INT_MAX;
for(int i = 0; i < n; ++i){
mx = max(arr,mx);
mi = min(arr,mi);
}
printf("最大值为: %d\n最小值为: %d\n",mx,mi);
}
int binarySearch(int *nums, int n, int target){
if(n == 0)
return -1;
int left = 0, right = n - 1;
while(left <= right){
// Prevent (left + right) overflow
int mid = left + (right - left) / 2;
if(nums == target){ return mid; }
else if(nums < target) { left = mid + 1; }
else { right = mid - 1; }
}
// End Condition: left > right
return -1;
}
int main(void){
while(true){
init();
int choose;
scanf("%d",&choose);
switch(choose){
case 1 :
{
printf("请输入3个数: ");
int arr1 = {0};
for(int i = 0; i < 3; ++i){
scanf("%d", &arr1);
}
SelectSort(arr1,3);
print(arr1,3);
break;
}
case 2 :
leap_year();
break;
case 3 :
triangle();
break;
case 4 :
compute();
break;
case 5 :
{
int arr2 = {0};
printf("请输入10个数: ");
for(int i = 0; i < 10; ++i){
scanf("%d",&arr2);
}
maxmin(arr2,10);
break;
}
case 6 :
{
int arr3 = {0};
printf("请输入10个数: ");
for(int i = 0; i < 10; ++i){
scanf("%d",&arr3);
}
SelectSort(arr3,10);
print(arr3,10);
break;
}
case 7 :
{
int arr4 = {0};
printf("请输入10个数: ");
for(int i = 0; i < 10; ++i){
scanf("%d",&arr4);
}
int x;
printf("请输入要查找的值: ");
scanf("%d",&x);
int index = binarySearch(arr4,10,x);
if(index == -1){
printf("数组中没有%d",x);
}else {
printf("%d的下标为%d",x,index);
}
putchar('\n');
break;
}
case 8 :
return 0;
}
}
return 0;
} 这些程序都不难, 平时多练习基本都会 本帖最后由 风过无痕1989 于 2020-12-1 13:09 编辑
上面的朋友已经给出了答案,而我在第 8 段那里费了几个小时,都没能成功,代码还是给你吧(前面的 7 种 case,加上文件头,都可以是单独的程序)
#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int sort(int n,int a[]);
int sort(int n,int a[]) // 因第 6、7 段程序的需要,定义排序函数
{
int i, j, p, temp;
for(i=0; i < n; i++)
{
p = i;
for(j = i + 1; j < n; j++) //找出数组中的最大值
if(a > a) // 由小至大排序
p = j;
if(p != i) //将最大值与a调换
{
temp = a;
a = a;
a = temp;
}
}
return 0;
}
int main()
{
int n;
printf("请选择:1、三个排序;2、闰年识别;3、三角形面积计算;4、四则运算;");
printf("5、10个数的最大值与最小值;6、选择法排序;7、二分法查找;8、退出程序;");
scanf("%d", &n);
switch (n)
{
case 1:
{
int a, b, c,max, mid, min;
printf("请输入3个数: ");
scanf("%d%d%d", &a, &b, &c);
max = a;
min = a;
if (max < b)
max = b;
if (max < c)
max = c;
if (min > b)
min = b;
if (min > c)
min = c;
mid = a + b + c - max - min;
printf("%d %d %d\n", max,mid,min);
break;
}
case 2:
{
int year;
printf("请输入待查询的年份:");
scanf("%d", &year);
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
printf("输入的年份 %d 是闰年\n", year);
}
else
printf("输入的年份 %d 不是闰年\n", year);
break;
}
case 3:
{
double a, b, c, s, area;
printf("输入三角形的三条边:");
scanf("%lf%lf%lf", &a, &b, &c);
s = (a + b + c) / 2.0;
area = sqrt(s*(s - a)*(s - b)*(s - c));
printf("面积 = %.2lf\n", area);
break;
}
case 4:
{
int i;
double a, b;
char c, str;
printf("请输入因数及运算符:");
scanf("%lf%lf%s", &a, &b, str);
for (i = 0;i < 4;i++)
{
if (str == '+' || str == '-' || str == '*' || str == '/')
{
c = str;
}
}
if (c == '+')
{
printf("%.2f\n", a + b);
}
else if (c == '-')
{
printf("%.2f\n", a - b);
}
else if (c == '*')
{
printf("%.2f\n", a*b);
}
else if (c == '/')
{
if (b != 0)
{
printf("%.2f\n", a / b);
}
else
{
printf("除数不能为0 !\n");
}
}
break;
}
case 5:
{
int i, j, min = 0, max = 0;
int a = {0};
printf("请输入10个数:");
for (i = 0;i < 2;i++)
{
for (j = 0;j < 5;j++)
{
scanf("%d", &a);
}
}
max = a;
min = a;
for (i = 0;i < 2;i++)
{
for (j = 0;j < 5;j++)
{
if (max < a)
{
max = a;
}
if (min > a)
{
min = a;
}
}
}
printf("最大的值是:%d ", max);
printf("最小的值是:%d ", min);
break;
}
case 6:
{
int i, n, a;
printf("enter data: ");
for (i = 0;i < 10;i++)
{
scanf("%d", &a);
}
n = sizeof(a) / sizeof(int);
sort(n,a); // 调用函数,实现选择法排序
printf("The sorted numbers: ");
for (i = 0;i < 10;i++)
printf("%d ", a);
printf("\n");
break;
}
case 7:
{
int a[] = { 1,5,66,8,55,9,1,32,5,65,4,8,5,15,64,156,1564,15,1,8,9,7,215,
16,45,5,6,164,15,236,2,5,55,6,4,1,59,23,4,5,314,56,15,3,54,
1,54,54,2,4,4,5,15,698,486,56,26,98,78,456,1894,564,26,56,5 };
int left = 0;
int right = 9;
int mid;
int n;//存放数组a中元素的个数
int m;//查找的数字
int i;//循环变量
n = sizeof(a) / sizeof(int);//求出数组中所有元素的个数
sort(n,a);
printf("请输入待查找的数字: ");
scanf("%d", &m);
while (left <= right) // 二分法查找
{
mid = (left + right) / 2;
if (a > 1.5)
{
right = mid-1;
}
else if (a < 1.5)
{
left = mid + 1;
}
else
{
printf("在位于:%d 找到了所输入的数\n", mid);
break;
}
}
if (left > right)
{
printf("找不到所输入的数");
}
return 0;
break;
}
case 8:
{
// 退出控制台程序
}
}
} 风过无痕1989 发表于 2020-12-1 01:23
上面的朋友已经给出了答案,而我在第 8 段那里费了几个小时,都没能成功,代码还是给你吧(前面的 7 种 cas ...
谢谢哥{:5_109:}
页:
[1]