求助各位C语言编程高手~帮我做3道题~

作者&投稿:俎美 (若有异议请与网页底部的电邮联系)
急求 3道c语言编程题~

第一道:(太晚了,困了,没时间写注释,不好意思)
#include
#include
#include

int compare(int *a,int n)
{
int temp;
if(a[0]>a[1])
temp=a[0];
else
temp=a[1];
if(temp<a[2])
temp=a[2];
return temp;
}//compare

void main()
{
int a[3];
char str[3][10];
char *p;
int i,j,count;
printf("Please input the data.
");
for( i=0;i<3;i++)
{
gets(str[i]);
p=str[i];
while(*p!='\0')
{
if(*p>='0'&&*p<='9')
p++;
else
{
printf("Data error!Please try again!
");
i--;
break;
}//else
}//while

}//for
for( i=0;i<3;i++)
{
puts(str[i]);
count=0;
for(j=0;j<strlen(str[i]);j++)
{
count*=10;
count=count+(int)str[i][j]-48; //减去48是把字符型的ASCII码转换成本身代表的整数
}//for
a[i]=count;
}//for
printf("The max number is:%d.
",compare(a,3));
}//main
第二道条件太少,不知道楼主到底想怎样的分寝室。
第三道:
#include

void main()
{
int i,j,count,m=0;
for(i=2;i<=1000;i++)//1不是素数
{
count=0;
for(j=2;j<=i/2;j++)
{
if(i%j==0)
{ count++;
break;
}
}//for
if(count==0)
{ printf("%d",i);
m++;
}//if
if(m==5)
{
printf("
");
m=0;
}//if
}//for
}//main

补充:(时间匆忙,没时间编译。)
#include
void main()
{
int person;
printf("Please input the number of person!");
scanf("%d",&person);
if(person%6==0)
printf("The number of dormitory is %d",person/6);
else
printf("The number of dormitory is %d",person/6+1);
}//main

1.
#include
int fn(int a,int n)
{
int count,sum=0,b=0;
for(count=1;count<=n;count++)
{
b+=a;
sum+=b;
a=a*10;
}
return sum;
}
main()
{
int a,n,sum=0;
printf("input a and n:");
scanf("%d%d",&a,&n);
sum=fn(a,n);
printf("a+aa+aaa+...=%d",sum);
}
2.
#include
#include
int dist(int x1,int y1,int x2,int y2)
{
return (int)sqrt(abs(x1-x2)*abs(x1-x2)+abs(y1-y2)*abs(y1-y2));
}
main()
{
int x1,x2,y1,y2,s;
printf("input a and n:");
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
s=dist(x1,y1,x2,y2);
printf("distance=%d",s);
}
3.
#include
#include
int countdigit(int number,int digit)
{
int count=0;
do
if(number%10==digit)
count++;
while(number/=10);
return count;
}
main()
{
int number,digit,s;
printf("input a and n:");
scanf("%d%d",&number,&digit);
s=countdigit(number,digit);
printf("%d",s);
}
//全部实现 验证成功

#include <stdio.h>
#include <string.h>

#define N 4

/*-----------------------------------------
                   第一题
-------------------------------------------*/
void Diamond(const char* s, int n, int len) 
{
    printf("%*s%-s\n", len, s + n - 1, s + n);
    if(n > 1)
        Diamond(s, n - 1, len);
    printf("%*s%-s\n", len, s + n, n == len ? s + n : s + n + 1); 
}

/*-----------------------------------------
                   第二题
-------------------------------------------*/
typedef struct
{
    int gcd;
    int lcm;
}pair;

void GCD_LCM(int a, int b, pair * p)
{
    int tmp;
    int product = a * b;
    while(b % a)
    {
        tmp = a;
        a = b % a;
        b = tmp;
    }
    p->gcd = a;
    p->lcm = product / a;
}

/*-----------------------------------------
                   第三题
-------------------------------------------*/
void Swap(int* lhs, int* rhs)
{
    int tmp = *lhs;
    *lhs = *rhs;
    *rhs = tmp;
}

void BubbleSort(int* beg, int* end)
{
    for(; beg != end; ++beg)
        for(int* p = end - 1; p != beg; --p)
            if(*p < *(p - 1))
                Swap(p, p - 1);
}

void SelectSort(int* beg, int* end)
{
    for(; beg != end; ++beg)
    {
        int* max = beg;
        for(int* p = beg + 1; p != end; ++p)
            if(*max < *p)
                max = p;
        Swap(beg, max);
    }
}

void Print(int* beg, int* end)
{
    while(beg != end)
        printf("%d ", *beg++);
    putchar('\n');
}

int main()
{
    /*一*/
    char pt[N+1] = {0};
    memset(pt, '*', N);
    Diamond(pt, N, N);
    
    /*二*/
    pair p;
    GCD_LCM(3, 6, &p);
    printf("%d %d\n", p.gcd, p.lcm);
    
    /*三*/
    int a[] = {32, 9, 45, 22, 15, 48, 47, 8, 55, 1};
    Print(a, a + 10);
    BubbleSort(a, a + 10);
    Print(a, a + 10);
    SelectSort(a, a + 10);
    Print(a, a + 10);
}

第一题有人写了,我就不回了。
第二题:
1、冒泡法:
#include "stdio.h"

void Print(int a[10],int n);
void Order(int a[10],int n);

main()
{
int a[10]={32,9,45,22,15,48,47,8,55,1};

Print(a,10);
Order(a,10);
Print(a,10);

}
void Print(int a[10],int n)
{
int i;

for(i=0;i<n;i++)
{
printf("%4d",a[i]);
}
printf("\n");
}

void Order(int a[10],int n)
{
int i,j,temp;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}

}

2、选择法:

#include "stdio.h"

void Print(int a[10],int n);
void Order(int a[10],int n);

main()
{
int a[10]={32,9,45,22,15,48,47,8,55,1};

Print(a,10);
Order(a,10);
Print(a,10);

}
void Print(int a[10],int n)
{
int i;

for(i=0;i<n;i++)
{
printf("%4d",a[i]);
}
printf("\n");
}

void Order(int a[10],int n)
{
int i,j,temp,m;
for(i=0;i<n;i++)
{
m=i;
for(j=i+1;j<n;j++)
{
if(a[m]>a[j])
{
m=j;
}
}
if(m!=i)
{
temp=a[m];
a[m]=a[i];
a[i]=temp;
}
}

}

第三题:
#include "stdio.h"
#include "math.h"
main()
{
int i,j;

for(i=1;i<=7;i++)
{

for(j=1;j<=fabs(4-i);j++)
{
printf(" ");
}
for(j=1;j<=(4-fabs(4-i))*2-1;j++)
{
printf("*");
}
printf("\n");
}
}

以上三个程序均经过Turbo C2.0调试通过,结果正确。

很简单的嘛!

晚上帮你做

求C语言编程题,求助各位大神,谢谢~ 输入10个整数,将它们从大到小排序...
答:include <stdio.h>#include <conio.h>#define LEN 100 /*数组长度上限*/#define elemType int /*元素类型*//*输入数组*/void inputArr (elemType arr[], int len) {int i;for (i=0; i<len; i++)scanf ("%d",&arr[i]);putchar ('\n');}/*打印数组*/void printArr (elemType ...

C语言编程题 望大家帮忙。
答:此程序我已经测试过,完全通过,放心.

C语言编程高手请进~~~请一定要帮帮忙,万分感谢~~~!!!小虾米自己实在是能...
答:第1题题目表述不清,普通的二叉树的合并没有任何意义,如果是二叉排序树还差不多。若非要进行普通的二叉树的合并,只要将一个树的插入到另一个树的度非2的结点上,最简便的做法是沿着另一个树的根一直遍历到左子树的叶子结点,不过这没有意义。要是这样的话,此题太简单了,自己实现吧!!第2题 ...

跪求编程大神~用c语言编个程序
答:Elem_Type *array,int len){ for(int i=0; i<len; i++) if(array[i] == num) return i; //return -1;//没有找到} //前序遍历 中序遍历 中序数组长度BiTree *Resume_BiTree(Elem_Type *front,Elem_Type *center,int len){ if(len <= 0) return ...

哪位高手能帮我编以下c语言的程序
答:mov c,al mov y,ah mov cl,2 mov bl,c shr bl,cl ;int(c/4) shl c,1 ;2*c sub bl,c add bl,y shr y,cl ;int(y/4) add bl,y ;int(c/4)-2*c+y+int(y/4)--->bl inc Month xor ah,ah mov al,Month mov dx,13 mul dx mov cx,5 div cx xchg ax,bx cbw xchg ax,bx ...

求会C语言编程编程的师兄或高手帮我编个小游戏
答:scanf("%c",&ready);if(ready=='y' || ready=='Y'){ //获取当前时间 startTime = time(NULL);//cout<<nowtime<<endl;} //判断输入 for(i=0; i<30; i++){ printf("%d\n",num[i]);printf("please input %d number:", i+1);while(1){ scanf("%d",&inNum);if(inNum=...

高分悬赏急求哪位单片机C语言编程高手帮我翻译这个程序,由于要提问到...
答:// 只要32就可以了 define uint unsigned int // 宏定义“短表示”,方便书写 define uchar unsigned char // 同上 void lcd_mwc(uchar i) // 这个函数是用来写命令的:如启动液晶 // 锁定液晶等,可以查看液晶控制字就知道 // 0xb8和0x40是什么命令了,估计是启动 /***/ // 属...

求助,c语言高手进来帮忙编程
答:第2题没能按要求能输入考生人数,在函数中修改N值吧,我用的C++编译器,如要调试请注意用C++ 第二题你是不是新建为:名字.c源文件啊,新建为:名字.cpp就能运行了 因为我是用C++编译的...--- 楼主能说清楚哪个题运行不了吗,我这儿都能运行啊,你看看运行结果吧,附上截图了......

求助c语言编程高手,跪谢。
答:return TRUE;}void cx1( int n, int a[2] ){ int i,j; for( i=2; i<=n-2; i++ ) { j = n-i; if ( prime(i) && prime(j) ) { if ( i>j ) { a[0] = j; a[1] = i; } else { ...

请C语言编程高手帮忙帮我看看下面的题目
答:① 倒填 ② 蛇形填数 ③ 回转填数 这个你应该看的懂吧 你在表中从1数到25就知道怎么填的了 然后再看程序 应该很简单的啊 你得把程序循环得层次弄清楚 例如③ 回转填数 int i,j,k=1,m,mi,mj,a[NUM][NUM],ind[4]={NUM-1,NUM-1,0,1}; /*i为行号,j为列号,k当前填的数...