当前位置:首页 » 编程语言 » c语言编程这题应该怎么做
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言编程这题应该怎么做

发布时间: 2022-09-19 03:38:35

1. 这个c语言编程怎么做

sum.h:
#define SUM(x,y) ((x)+(y))

mul.h:
#define MUL(x,y) ((x)*(y))

main.c
#indelu <stdio.h>
#include "sum.h"
#include "mul.h"
main(){
int a,b;
scanf("%d%d",&a,&b);
printf("sum=%d,mul=%d\n", SUM(a,b), MUL(a,b));
}

2. c语言编程题,怎么做,求教

挺简单的基础C语言题目,思路大概如下

char*myfunc(char*p,intsize)
{
char*tmp_p1=p;
char*new_p,*tmp_p2;
new_p=malloc(size*sizeof(char));
tmp_p2=new_p;
while(*(tmp_p1++)!='')
{
//把tmp_p1指针移到字符串的末尾
}
while(tmp_p1--!=p)
{
*(tmp_p2++)=*(tmp_p1);
}
returnnew_p;
}

大概思路就是让一个临时指针跑到p字符串的末尾,然后定义新的指针不断自增,而p的临时指针不断自减,把值赋给新的指针。

代码没有执行过,关于++和--可能会有一位的误差,需要自己调试一下。

3. C语言编程题怎么做

#include <stdio.h>

int main()
{
void _m(char *p1, char *p2, int m);
char str1[100], *p1=str1, str2[100], *p2=str2;
int m;
printf("请随便输入一个字符串:");
gets(p1);
printf("您输入的字符串为:\n%s\n\n", p1);
printf("您打算从第几个字符开始复制呢?\n");
scanf("%d", &m);
_m(p1, p2, m);
printf("\n复制得到的另一个字符串为:\n%s", p2);
return 0;
}

void _m(char *p1, char *p2, int m)
{
int i;
char *temp=p1+m-1;
for(;*temp!='\0';){
*p2++ = *temp++;
}
}

4. C语言编程题咋做啊

这个很容易的,因为只可能是等差、等比或者斐波那契,所以只需要通过输入的5个数字来判断到底是哪个数列,然后计算出剩下的5个数字就行了。
比较容易错的是在判断等比时要用到除法,需要判断是否除数为0。
当然,如果你问这个问题是想别人直接给你代码,或者说是你知道思路而不会写代码,那就不好弄了。。

5. C语言编程,这题怎么做

运行结果是945组,代码如下:
#include <stdio.h>
int FindNext(int A_index[], int B_index[], int group[],int x, int q, int start)
{
int m=start, flag, p;
if((q>0)&&(start<group[q-1]))
{
m=group[q-1];
}
for(;m<x;m++)
{
flag=0;
for(p=0;p<q;p++)
{
if((A_index[group[p]]==A_index[m])
||(A_index[group[p]]==B_index[m])
||(B_index[group[p]]==A_index[m])
||(B_index[group[p]]==B_index[m]))
{
flag=1;
break;
}
}
if(flag==0)
{
return m;
}
}
return -1;
}
int AnalyseArray(int data[])
{
int A_index[1000], B_index[1000];
int i, j, k, m, n=0, x=0, y=4, q=0, last=0;
int group[1000][5];

for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if((j!=i)&&(data[j]>data[i]))
{
A_index[x]=i;
B_index[x]=j;
x++;
}
}
}

do
{
m=FindNext(A_index, B_index, group[n], x, q, last);
if(m>=0)
{
group[n][q]=m;
q++;

if(q>=5)
{
y=4;
n++;
last=group[n-1][y]+1;
q=y;
for(m=0;m<y;m++)
{
group[n][m]=group[n-1][m];
}
}
}
else
{
y--;
if(y>=0)
{
last=group[n-1][y]+1;
q=y;
for(m=0;m<y;m++)
{
group[n][m]=group[n-1][m];
}
}
}
}while(y>=0);

printf("组合有: \n");
for(i=0;i<n;i++)
{
printf("%d) A组[",i+1);
for(k=0;k<5;k++)
{
m=group[i][k];
j=A_index[m];
printf("%d ",data[j]);
}
printf("]; B组[");
for(k=0;k<5;k++)
{
m=group[i][k];
j=B_index[m];
printf("%d ",data[j]);
}
printf("]\n");
}

return n;
}

int main()
{
int DATA[10]={0,1,2,3,4,5,6,7,8,9};
int ret = AnalyseArray(DATA);
printf("共%d组\n",ret);
return 0;
}

6. 初学编程,大家帮忙看下这道c语言题怎么做万分感谢

先给你第一题的,网络知道的这个编辑器真的不适合粘贴代码

#include<stdio.h>

#include<string.h>

#define MAX_ARRAY_SIZE 1024

#define MAX_MAP_SIZE 10


/* 输入数组,连续输入,如:aedabcdaeas */

int inputArray(char *buff) {

int len = 0;

/* 使用fgets来防止缓冲区溢出 */

if (NULL == fgets(buff, MAX_ARRAY_SIZE, stdin)) {

return 0;

}

len = strlen(buff);

/* fgets 返回的数据可能是换行符结尾的,也可能不是,对换行符结尾的进行处理 */

if (buff[len - 1] == ' ') {

buff[len - 1] = '';

len -= 1;

}

return len;

}

int processArray(int len, char *chars, char *map) {

/* 保存反向映射便于查找 */

int tmap[128];

int maplen = 0;

int i = 0;

char *p = chars;

memset(tmap, -1, sizeof(int) * 128);

for (i = 0; i < len; i++) {


if (*p > 'z' || *p < 'a') {

return -*p;

}

if (tmap[*p] == -1) {

if (maplen >= MAX_MAP_SIZE) {

return -1;

}

tmap[*p] = maplen;

map[maplen] = *p;

maplen += 1;

}

*p = '0' + tmap[*p];

p++;

}

return maplen;

}

int main() {

/* 用于输入的字符数组 */

char buff[MAX_ARRAY_SIZE];

/* 用于保存转换规则的数组 */

char map[MAX_MAP_SIZE];

/* 保存字符数组长度 */

int len = 0;

int maplen = 0;

int i = 0;


len = inputArray(buff);


if (len <= 0) {

puts("Cancelled");

} else if (len < 10) {

puts("Not enough 10 chars");

} else {


maplen = processArray(len, buff, map);

if (maplen >= 0) {

puts("转换结果:");

for (i = 0; i < len; i++) {

printf("%c ", buff[i]);

}

puts("");

puts("映射规则:");

for (i = 0; i < maplen; i++) {

printf("%c -> %d ", map[i], i);

}

puts("");

} else if (maplen == -1) {

puts("Different Chars count is OverLimit of 10");

} else if (maplen <= -2) {

printf("Unexpected char %c ", -maplen);

}

}

return 0;

}

执行结果:

7. c语言编程题怎么做

c语言编程题,要根据题目的要求,选用合适的数据类型、数据结构和正确的计算方法。

8. 请问一下这道C语言编程题怎么做

按照题目要求编写的用凯撒密码加密的C语言程序如下

#include<stdio.h>

int main(){

char s[80];

int offset,i;

fgets(s,80,stdin);

scanf("%d",&offset);

for(i=0;s[i]!='';i++){

if('A'<=s[i] && s[i]<='Z')

if(offset>=0)

s[i]='A'+(s[i]-'A'+offset)%26;

else

s[i]='A'+(s[i]-'A'+26+offset%26)%26;

else if('a'<=s[i] && s[i]<='z')

if(offset>=0)

s[i]='a'+(s[i]-'a'+offset)%26;

else

s[i]='a'+(s[i]-'a'+26+offset%26)%26;

}

printf("%s ", s);

return 0;

}

9. C语言编程:下面要求的题目怎么做

应用同余定理,可以比较简单地求出。其实是个老题目,说法略不同而已——

代码文本:

#include "stdio.h"

int main(int argc,char *argv[]){

int n,m,ans,i;

printf("Please enter n & m(int n,m>0)... ");

if(scanf("%d%d",&n,&m)==2 && n>0 && m>0){

ans=0;

for(i=1;i<=n;i++)

ans=(ans+m)%i;

printf(" The result is %d ",ans%n+1);

}

else

printf("Input error, exit... ");

return 0;

}