C语言求助 这道题怎么编程

作者&投稿:重杜 (若有异议请与网页底部的电邮联系)
一道c语言编程题求助...~

#include #include void calc(int p[9]){ if (p[0] == 0 // 为了保证第一个数为三位数 || p[3] == 0 // 为了保证第二个数为两位数 || p[5] == 0) { // 为了保证第三个数为四位数 return ; } int num[3] = {0}; num[0] = p[0] * 100 + p[1] * 10 + p[2]; num[1] = p[3] * 10 + p[4]; num[2] = p[5] * 1000 + p[6] * 100 + p[7] * 10 + p[8]; if (num[0] * num[1] == num[2]) { printf ("%d * %d == %d
", num[0], num[1], num[2]); }}// 检查p[k]这个值在p[0]~p[k-1]中是否出现过,出现过返回truebool is_used(int p[9], int k){ int i; for (i = 0; i = 0) { for (p[k]++; p[k] 9) { // 如果数字超出范围,回退 p[k--] = -1; } else if (k == 8) { // 达到所需规模,计算 calc(p); } else { // 否则,一切正常,前进 p[++k] = -1; } } return 0;}这种解法用到的算法是回溯法,你可以在网上先查一下这种算法。
它差不多是万能算法,如果一时找不到更好的算法,那就用它了。

不管你程序写怎么样。只看结果。对了满分不对0分。编程题满分为24分。
如果有out.dat文件,将该文件和标准答案的out.dat文件对比,看相符的比例是多少而给分,如果完全相同则是100分,如果没有out.dat文件,则比较考生编写的代码和标准答案的代码的相符情况,按相符度给分。
评分程序先是读取考生文件夹下的扩展名为.DAT的文件,再其中的数据与评分程序中的提供的数据进行对比,因此,考生在编程后,一定要运行程序,以生成扩展名为.DAT的输出文件。

扩展资料:
考试注意事项:
1、审题要仔细。
2、一定要考虑除零、溢出、类型转换、精度等细节问题。
3、不要使用快捷键。
热键在考试的时候是很危险的,因为UCDOS的热键和TC的冲突,CTRL+F9变成了全角半角转换。
4、不要加载任何输入法。
上机考试用的DOS环境内存十分有限,如果你加载了任何一个输入法,都有可能造成编译程序的时候出现out of memory 内存不足的情况,到那时就麻烦了。
参考资料来源:百度百科-计算机二级C语言考试

一个大体的思路和流程:

typedef struct{
char[] word; //某个单词
int countA;//在文章A中的出现次数
int countB;//在文章B中的出现次数
}WordCount;//表示某一个单词在两篇文章中的出现次数

int wordsCountA;//文章A中的单词总数量
int wordsCountB;//文章B中的单词总数量

WordCount[] wcArray;//所有出现过的单词的出现次数数组

//用来判断两个单词是否相等的函数
int isEqual(char[] a, char[] b);

//读取文件流中下一个单词的函数(如果某个char的值不在a-z和A-Z范围内,可以认为这是一个单词结束的标志);如果已经没有下一个单词(文件结束),返回一个值为0的指针
char[] nextWord(FILE* f);

//检查wcArray中是否存在要添加的单词(isEqual函数在这里被用到),如果存在,根据flag的值使对应单词的countA或countB加1(flag表示是文章A还是文章B),如果不存在,创建一个新WordCount,并添加到wcArray中。
void addWord(char[] word, int flag);

int main(){
scanf函数读取用户输入的文章A和B的路径

FILE* f = fopen(文章A路径,只读);
while(能读到下一个单词){
addWord(读到的单词,flagA);
++wordsCountA;
}
fclose(f);

FILE* f = fopen(文章B路径,只读);
while(能读到下一个单词){
addWord(读到的单词,flagB);
++wordsCountB;
}
fclose(f);

FILE* f = fopen(输出文件路径,写入);
使用wordsCountA、wordsCountB、wcArray计算题目要求的数据,打印到屏幕,同时用fprintf函数将结果写入到输出文件。
fclose(f);

return 0;
}

根据不同的功能性质决定那用需要多少钱。

发啦啦啦啦


吉隆县15633729663: c语言编程问题 ,这题怎么编 -
唱秆舍尼: 中央凹进去的话,求体积的话扣除这些小的长方体的体积就好了,表面积不变. #include "stdio.h" int main() {int a,b,c,d,e;printf("请输入长方体的长宽高和凹进去的深度,没凹进去的边框宽度:\n");scanf("%d,%d,%d,%d,%d",&a,&b,&c,&d,&e);int area, volumn;area = 2*(a*b+a*c+b*c);volumn = a*b*c-(a+b+c-6*d)*e;printf("%d %d\n",area,volumn);return 0; }

吉隆县15633729663: c语言 求这道题的过程 -
唱秆舍尼:楼主,这题有规律,你会发现,两条对角线上都有1 头行,尾行,头列,尾列都有1所以程序如下#include int main() { int i, j; for(i = 0; i <...

吉隆县15633729663: 这道题用C语言编程怎么做 急!!~~
唱秆舍尼: #include<stdio.h> void main () {int r,g,b,count=0; for(r=1;r<=10;r++)for(g=0;g<=5;g++)for(b=0;b<=8;b++)if(r+b+g==8){count++;printf("%d%d%d\n",r,b,g);} printf("共有%d种\n",count); } PS: 我电脑上没有vc编译器 楼主自己验证下

吉隆县15633729663: 这题用C语言怎么编 -
唱秆舍尼: main(){int i,s=0;for (i=1;i<=100;i+=2) {printf("%d ",i);s+=i;}printf("\nsum=%d\n",s);}

吉隆县15633729663: 这道题怎么用C语言编? -
唱秆舍尼: #include "stdio.h" int check(int a,int b,int c, int d, int e){ //用来检验五个数字互不相同 int num[10]={0}; int i; num[a]++; num[b]++; num[c]++; num[d]++; num[e]++; for(i=0;i<10;i++){ if(num[i]>1) return 0; } return 1; } main() { int i,j,k,i1,i2,i3,j1,j2,k1,k2,k...

吉隆县15633729663: 用c语言编写这道题的程序 -
唱秆舍尼: #include int my_pow(int x,int y) { int i; int t=1; for(i=0;i { t=t*x%1000; } return t; } int main() {int x,y; while(scanf("%d%d",&x,&y)!=EOF) { printf("%d\n",my_pow(x,y); } return 0; }

吉隆县15633729663: 如何用C语言做这道题目? -
唱秆舍尼: #include#define N 4 void main() { double i,s=0; if(N == 1) { printf("%d\n",N); } else { for(i = 2.0;i { if((int)i % 2 == 0) { s-=(i-1)/i; } else { s+=(i-1)/i; } } s+=1; printf("%f\n",s); } }

吉隆县15633729663: 请问这道题目怎么用c语言编程完成(请写出详细过程,谢谢)
唱秆舍尼:#include <stdio.h> int main(int argc, char *argv[]) { int sum = 0; printf("Hello, world\n"); for(float k = 1;k <= 100;k++){ if(k <= 10){ sum += 1/k; } if(k <= 50){ sum +=k*k; } sum += k; } return 0; }

吉隆县15633729663: 请问这道C语言的题目怎么编程?
唱秆舍尼: 你好,正确的程序如下: #include<stdio.h> void main() { char str1[200],str2[100]; int i,j,p,q,t; printf("请输入第一个字符串:\n"); for(i=0;(str1[i]=getchar())!='\n';i++) ; printf("请输入第二个字符串:\n"); for(j=0;(str2[j]=getchar())!='\n';j++) ; for...

吉隆县15633729663: C语言如何做这个题???? -
唱秆舍尼: 给:#include#include void main() {int a[100]={0}; //由于第一个人是将全部灯关闭,所以初始化时设定灯全开(0表示灯开,1表示灯闭)int i,j,count=...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网