當前位置:首頁 » 編程語言 » 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;

}