C语言程序题目,急求解答,望高手帮忙

2024-05-14

1. C语言程序题目,急求解答,望高手帮忙

二、编程题(20分)
reverse.h文件 
#ifndef REVERSE_H
#define REVERSE_H

/*
 *求整数m~n之间(m<n)所有数的反序数并统计反序数中素数的个数
 *将得到的反序数依次存入数组x中
 *函数的返回值是反序数中素数的个数。
 *2007-09-09 14:24
 */
int reverse(const int m, const int n, int x[]);
bool IsPrime(const int p);
int reverse(const int r);

#endif

reverse.cpp文件
#include "reverse.h"
#include 
#include 

#include 
using namespace std;

bool IsPrime(const int p)
{
 int k = (int)sqrt( (double)p);
 for (int i=2; i<=k; i++)
 {
  if (p%i == 0) return false;
 }

 return true;
}

int reverse(const int r)
{
 char chReverse[10];
 memset(chReverse, '0', sizeof(chReverse));

 int iTmp = r;
 int index = 0;

 while (iTmp != 0)
 {
  int digit = iTmp % 10;
  sprintf( chReverse+index, "%d", digit);
  index++;
  iTmp = iTmp / 10;
 }
 chReverse[index] = '\0';

 return atoi(chReverse);
}

int reverse(const int m, const int n, int x[])
{
 int index = 0;
 for (int i=m; i<n+1; i++)
 {
  if (IsPrime(i))
   x[index++] = reverse(i);
 }
 return index;
}


main.cpp 文件
#include "reverse.h"
#include 
using namespace std;

int main()
{
 int iMin,iMax;
 cout << "Input Min and Max :";
 cin >> iMin >> iMax;
 
 const int size = iMax - iMin;
 int iResult[size];
 
 int iCount = reverse(iMin, iMax, iResult);
 
 for (int i=0; i<iCount; i++)
 {
  cout << iResult[i] <<endl;
 }
 cout << "Total Prime Count :" << iCount << endl;
}

C语言程序题目,急求解答,望高手帮忙

2. 高手帮忙改一个c语言程序

int sfz(int a)
{
int a;
a=3;
return a+5;
}
int main()
(
 int x;
 scanf("%d",&x);
 printf("is %d",sfz(x));
return 0;
) 


这段程序的主要问题在于没有实参。
少一个输入语句,或者你给x赋值也可以

3. 高手帮忙设计一个C语言程序

#include
#include
#include
struct student
{char name[30];
char number[20];
char sex[10];
char nation[10];
char address[60];
char born[20];
char family[60];
char course[60];
int sign;
struct student *next;
}record;
struct student *head;
static int n;
int menu_select(),i;
void enter();
void delete();
void search();
void group();
void change();
void savefile();
void openfile();
main()
{char s[80],choice;
head=NULL;
for(;;)
switch(menu_select())
{case 1:enter();break;
case 2:delete();break;
case 3:search();break;
case 4:change();break;
case 5:group();break;
case 6:savefile();break;
case 7:openfile();break;
case 8:exit(0);
}
}
void group()
{struct student *p,*p1;
int j=1;
p1=head;
printf("\nyou can know every student's main information from this\n");
do
{printf("Sign number:%4d. Name:%10s. Number:%8s. Sex:%4s. Nation:%4s. Born:%6s\n",p1->sign,p1->name,p1->number,p1->sex,p1->nation,p1->born);
p1=p1->next;j++;
}while(p1->name!=0);
}

int menu_select()
{char s[80];
int n;
printf("1----Enter a name\n");
printf("2----Delete arecord\n");
printf("3----Search\n");
printf("4----Change\n");
printf("5----Group\n");
printf("6----savefile\n");
printf("7----openfile\n");
printf("8----Quit\n");
do
{printf("please input you choice:\n");
gets(s);
n=atoi(s);
}
while(n8);
return(n);
}
void enter()
{struct student *info;
void circle();
float a;
for(n=0;;n++)
{info=(struct student *)malloc(sizeof(record));
if(info==NULL)
{printf("\n Out of memory");
return;
}
getchar();
printf("enter name:");
gets(info->name);
if(info->name[0]=='0')
{info->next=0;break; }
else
{
printf("enter number:");
gets(info->number);
printf("enter Sex:");
gets(info->sex);
printf("enter nation:");
gets(info->nation);
printf("enter Address:");
gets(info->address);
printf("enter Born date:");
gets(info->born);
printf("enter Family:");
gets(info->family);
printf("enter Course:");
gets(info->course);
printf("enter Sign number:");
scanf("%d",&info->sign);
circle(info);
}
}
}
void circle(struct student *info)
{ struct student *p2,*p1,*p0;
p1=head;
p0=info;
if(head==NULL)
{head=p0;p0->next=NULL;}
else
{while((p0->signsign)&&(p1->next!=NULL))
{p2=p1;
p1=p1->next;}
if(p0->sign>p1->sign)
{if(head==p1)head=p0;
else p2->next=p0;
p0->next=p1;}
else
{p1->next=p0;p0->next=NULL;}
}
}

void display(info)
struct student *info;
{printf("Name:%s\n",info->name);
printf("Number:%s\n",info->number);
printf("Sex:%s\n",info->sex);
printf("Nation:%s\n",info->nation);
printf("Address:%s\n",info->address);
printf("Born date:%s\n",info->born);
printf("Family:%s\n",info->family);
printf("Course:%s\n",info->course);
printf("Sign number:%d\n",info->sign);
printf("\n\n");
}
void search()
{char name[40],street[30],s[30],t[30];
struct student *info,*find();
printf("you want by what to find name? number? sign(_number)?");
gets(t);
printf("\n input please:");
gets(s);
if((info=find(s))==NULL)
printf("not found\n");
else display(info);
}
struct student *find(char *s)
{
struct student *info;
info=head;
while(info)
{if((!strcmp(s,info->name))||(!strcmp(s,info->number))||(!strcmp(s,info->sign)))

return(info);
else
info=info->next;
}
return(info);
}
void delete()
{char s[80];
struct student *p1,*p2,*info;
printf("enter name:");
gets(s);
info=find(s);
if(info!=NULL)
{
if(head==info)
{
head=info->next;
printf("delete:%s\n",info->name);
free(info);
}
else
{p2=head;
p1=head->next;
while(info!=p1)
{p2=p1;p1=p1->next;}
p2->next=p1->next;
printf("delete:%s\n",info->name);
free(info);
}
}else
printf("%s not found!\n",info->name);
}
void change()
{char s[30],a[30];
float sum,b;
int i;
struct student *p;
printf("enter name:");
gets(s);
p=find(s);
if(p!=NULL)
{printf("what you want to change:\n name? number? sex? nation? born? family? course?");
gets(a);
printf("please enter %s:",a);
if(strcmp(a,"name")==0)
scanf("%s",p->name);
if(strcmp(a,"number")==0)
scanf("%s",p->number);
if(strcmp(a,"sex")==0)
scanf("%s",p->sex);
if(strcmp(a,"nation")==0)
scanf("%s",p->nation);
if(strcmp(a,"born")==0)
scanf("%s",p->born);
if(strcmp(a,"family")==0)
scanf("%s",p->family);
if(strcmp(a,"course")==0)
scanf("%s",p->course);
circle(p);
}
}
void savefile()
{struct student *p;
FILE *fp;
p=head;
fp=fopen("xue.c","wb");
printf("saving ...");
while(head)
{
fwrite(head,sizeof(record)-2,1,fp);
head=head->next;
}
fclose(fp);
printf("\n the file has been saved\n");
}
void openfile()
{FILE *fp;
struct student *back,*next;
fp=fopen("xue.c","rb");
printf("loading ...");
head=back=next=(struct student *)malloc(sizeof(record));
while(fread(next,sizeof(record)-2,1,fp)==1)
{
back=next;
next=(struct student *)malloc(sizeof(record));
back->next=next;
}
free(next);
back->next=NULL;
printf("\nfile has been opened\n");
}

高手帮忙设计一个C语言程序

4. 求一C语言程序,哪位高手帮忙解决一下。

#include "stdio.h"

void cin(int *p)
{
 int i;
 printf("请输入十个整数:\n");
 for(i=0;i<10;i++)
 {
  scanf("%d",&p[i]);
 }
}
void swap(int *p)
{
 int i,temp,min,max,min1,max1;
 min=p[0];
 max=p[0];
 for(i=1;i<10;i++)
 {
  if(min>p[i])
  {
   min=p[i];
   min1=i;
  }
  if(max<p[i])
  {
   max=p[i];
   max1=i;
  }
 }
 p[min1]=p[0];
 p[0]=min;
 p[max1]=p[9];
 p[9]=max;
}
void print(int *p)
{
 int i;
 for(i=0;i<10;i++)
 {
  printf("%d\t",p[i]);
 }
}
int main(int argc, char* argv[])
{
 int array[10];
 int *p=array;
 cin(p);
 swap(p);
 print(p);
 return 0;
}

5. C语言程序改错,望高手帮忙,谢谢!

楼上说得对,是函数的形式参数和调用的实际参数不符合。
sort(4,data[1]);
这里调用sort的是两个整形的实际参数
而sort(int n,int array[])
定义部分是一个整形和一个数组形式参数,两者不匹配。 
应把调用改为
sort(4,data);

C语言程序改错,望高手帮忙,谢谢!

6. 请c语言高手帮忙写一个C语言程序

#include 

int main(void)
{
  char c;
  for (c=33;c<=126;++c)
   printf("%d\t%o\t%x\t%c\n",c,c,c,c);
  return 0;
}

7. 请高手帮忙编一个C语言程序

//---------------------------------------------------------------------------

#include 

void fun(int a[][5],int size)
{
 int i,j,t;
 for (i = 0; i<size; i++) {
  for (j=i+1; j<5; j++) {
   t=a[i][j];
   a[i][j]=a[j][i];
   a[j][i]=t;
  }
 }
}
int main(void)
{
 int i,a[5][5];
 for (i = 0; i<25; i++) {      /*为5*5矩阵赋初值并输出*/
  a[i/5][i%5]=i;
  printf("%-2d ",a[i/5][i%5]);
  if ((i+1)%5==0) putchar('\n');
 }
 fun(a,5);                    /*转置*/
 puts("Transpose:") ;
 for (i = 0; i<25; i++) {      /*输出转置后的矩阵*/
  printf("%d ",a[i/5][i%5]);
  if ((i+1)%5==0) putchar('\n');
 }
 return 0;
}
//---------------------------------------------------------------------------

请高手帮忙编一个C语言程序

8. c语言程序:高手帮忙了!

按照题目,第一个人拿1个,第二个人拿2个,最后一个人是第n个,他必须拿n块吧。当然相等了。。