有趣的c语言函数问题 c语言常见函数编程

C语言函数问题(有挑战性难题)

先看下我的运行结果吧,会自动判断输入的m、n是否合法哦!

大悟ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

上代码,注释只写了部分有助理解的。

#include stdio.h

int Found(int m, int n, int a[])

{

int i = 0;

int Count = 0;

int offset = 0; //数组a的下标

int qian, bai, shi, ge; //千位、百位、十位、个位的值

for(i=m; i=n; i++)

{

//取出千位、百位、十位、个位的值

qian = i/1000;

bai = (i%1000)/100;

shi = (i%100)/10;

ge = i%10;

if((qian= bai bai=shi shi=ge) (qian+ge == bai+shi)) //找到一个符合条件的数

{

Count++;

a[offset++] = i;

}

}

return Count;

}

int main()

{

int m = 0;

int n = 0;

int nResult[100] = {0};

int Count = 0;

int i = 0;

FILE* pFile = NULL;

char szInfo[100] = {0};

while(1)

{

printf("Please enter m and n:");

scanf("%d %d", m, n);

printf("\n");

if(m=1000 n=1200 mn)

break;

else

printf("输入数据不合法,请重新输入\n");

}

Count = Found(m, n, nResult);

pFile = fopen("104.out", "w");

if(NULL == pFile)

printf("打开文件失败\n");

sprintf(szInfo, "found %d numbers in %d ~ %d:\n", Count, m, n);

printf("%s", szInfo);

if(NULL != pFile)

{

fwrite("No. 104\n", 1, strlen("No. 104\n"), pFile); // 写入学号

fwrite(szInfo, 1, strlen(szInfo), pFile);   //写入部分信息

}

for(i=0; iCount; i++)

{

printf("%d  ", nResult[i]);

sprintf(szInfo, "%d  ", nResult[i]);

if(NULL != pFile)  //输出到屏幕的同时,顺便把该值写进文件

fwrite(szInfo, 1, strlen(szInfo), pFile);

}

printf("\n");

if(NULL != pFile)

fclose(pFile);

return 0;

}

自从工作以来,两年没上过百度知道了,当初上大学的时候天天在百度知道问问题,今偶尔闲娱,帮忙解答,想不到这里还是这么热闹,不禁想起了当年为一个链表、一个函数挑灯夜战的场景。只能叹时间太快,想不到都过去好几年了。做程序最需要毅力,小师弟,好好努力吧,嘿嘿,下班回家咯!

有趣的C语言-递归函数-程序填空,请你来答!

int dec(int a[],int n)

{

if(n=1) return ____1_____;

if(a[0]a[1]) return 0;

return _____dec( a,n-1) ( a[n-1] = a[n-2] )______;

}

C语言 函数问题

用结构体比较方便易懂,我用结构体帮你做了一下,你可以看一看,可以运行的,我试过了。

#includestdio.h

#define N 4

#define M 5

struct student//建立学生数据结构体

{

char name[15];

float score[M];

float ave;

}stu[N];

void average(struct student stu[])//求平均成绩函数

{

int i,j,k;

float t;

for(i=0;iN;i++)

{

for(j=1;jM;j++)//冒泡排序将5个评委评分从低到高排列,然后取中间的评分求平均值。

for(k=0;kM-j;k++)

if(stu[i].score[j]stu[i].score[j+1])

{

t=stu[i].score[j];

stu[i].score[j]=stu[i].score[j+1];

stu[i].score[j+1]=t;

}

for(j=1;jM-1;j++)//去掉最高和最低分后求平均分

{

stu[i].ave+=stu[i].score[j];

}

stu[i].ave/=M-2;

}

}

void sort(struct student stu[])//排序函数

{

int i,j;

struct student temp;

for(i=1;iN;i++)//冒泡排序法

for(j=0;jN-i;j++)

if(stu[j].avestu[j+1].ave)

{

temp=stu[j];

stu[j]=stu[j+1];

stu[j+1]=temp;

}

}

main()

{

int i,j;

for(i=0;iN;i++)//输入学生数据

{

printf("请输入第%d个学生的姓名:",i+1);

scanf("%s",stu[i].name);

for(j=0;jM;j++)

{

printf("请输入该生第%d个评委的评分:",j+1);

scanf("%f",stu[i].score[j]);

}

}

average(stu);//执行函数

sort(stu);

printf("\n按平均成绩逆序输出为:\n");//逆序打印数据

printf("姓名 \t成绩\n");

for(i=0;iN;i++)

printf("%s \t%.2f\n",stu[i].name,stu[i].ave);

}

希望可以帮到你,呵呵

对大神来说很简单的C语言问题,悬赏很高的哦

根据题目描述,计算出出发时共赶多少只鸭子,以及经过每个村子卖出的鸭子数量。

#include stdio.hvoid sell_ducks(int village, int ducks) { if (village 7) { printf("\n"); return;

} else { int sold = ducks / 2; printf("sell=%d,", ducks - sold);

sell_ducks(village+1, sold);

}

}int main() { int ducks = 2; for (int i = 1; i = 7; i++) {

ducks = ducks * 2;

} int sold = ducks - 2; printf("sum=%d ", ducks);

sell_ducks(1, ducks); return 0;

}c

#include stdio.h

void sell_ducks(int village, int ducks) {

if (village 7) {

printf("\n");

return;

} else {

int sold = ducks / 2;

printf("sell=%d,", ducks - sold);

sell_ducks(village+1, sold);

}

}

int main() {

int ducks = 2;

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

ducks = ducks * 2;

}

int sold = ducks - 2;

printf("sum=%d ", ducks);

sell_ducks(1, ducks);

return 0;

}

首先,在main函数中,根据题目描述,使用一个循环计算出出发时共赶的鸭子数量。然后,计算出第七个村子卖出的鸭子数量。接着,调用sell_ducks函数,从第一个村子开始卖出鸭子。在sell_ducks函数中,首先判断是否已经经过了七个村子,如果经过了七个村子,就不再卖出鸭子,直接返回。否则,计算出本次要卖出的鸭子数量,打印出卖出的鸭子数量,并递归调用sell_ducks函数,处理下一个村子。

注意,上述程序中使用了递归函数来处理卖出鸭子的问题,可以方便地处理“每经过一个村子卖去所赶鸭子的一半又一只”的问题。同时,为了输出格式美观,程序中使用了逗号分隔每个村子卖出的鸭子数量,最后一个村庄卖出的鸭子数量后面没有逗号。


网页标题:有趣的c语言函数问题 c语言常见函数编程
文章出自:http://myzitong.com/article/ddiodgo.html