有趣的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语言常见函数编程
文章URL:http://myzitong.com/article/ddiodgo.html