当前位置: 代码迷 >> C语言 >> 求助3道题,在线等回复!
  详细解决方案

求助3道题,在线等回复!

热度:199   发布时间:2004-12-27 17:43:00.0
求助3道题,在线等回复!
1.计算数列之和:n-n/2+n/3-n/4+…-n/100。

2.大学里对不同性质的学生听课收费不同。某校是这样规定的:本校全日制学生不收费;本校夜大学生选课12学分及以下付200元,然后每增加一个学分付20元;对外校学生选课12学分及以下付600元,然后每增加一个学分付60元。输入某个学生的编号,选课学分以及学生类型,编程计算该学生应付的学费。

3.若某数的平方具有对称性质,则该数称为回文数,如11的平方为121,称11为回文数,请找出1~256中所有的回文数

搜索更多相关的解决方案: 在线  

----------------解决方案--------------------------------------------------------

问题还挺多,先说第一个

int sum(int n) { int s,i,flag=1; s=0; for(i=1;i<=100;i++) { s+=n/i*flag; flag=-flag; } return s; }


----------------解决方案--------------------------------------------------------

第二个不明确,输入某个学生的编号,选课学分以及学生类型,编程计算该学生应付的学费。

学生的类型怎么输入,输入几代表什么类型的学生,不明确这个没法写程序,因为需要判断


----------------解决方案--------------------------------------------------------

第二题:

/*大学里对不同性质的学生听课收费不同。某校是这样规定的:本校全日制学生不收费; 本校夜大学生选课12学分及以下付200元,然后每增加一个学分付20元; 对外校学生选课12学分及以下付600元,然后每增加一个学分付60元。 输入某个学生的编号,选课学分以及学生类型,编程计算该学生应付的学费 */

#include <stdio.h>

int WorkCost(int ,int );

void main() { char studentId[20]; int studentCreditHour,studentType; int cost;

printf("Input the Student ID:"); scanf("%s",studentId);

printf("Input the [%s] Credit Hour:",studentId); scanf("%d",&studentCreditHour);

printf("Input the [%s]\nType(1 is this school,2 is evening university,3 is others):",studentId); scanf("%d",&studentType);

cost=WorkCost(studentCreditHour,studentType); printf("[%s] is cost : %d\n",studentId,cost);

}

int WorkCost(int studentCreditHour,int studentType) { switch ( studentType ) { case 1: return 0; case 2: if ( studentCreditHour <= 0 ) { return 0; } else if ( studentCreditHour <= 12 ) { return 200; } else { return 200 + (studentCreditHour - 12) * 20; } case 3: if ( studentCreditHour <= 0 ) { return 0; } else if ( studentCreditHour <= 12 ) { return 600; } else { return 200 + (studentCreditHour - 12) * 60; } default: return 0; } }


----------------解决方案--------------------------------------------------------

其实你提的要求太含糊了,要详细点。

可以多用几条判断语句来根据学号计费。也可一用case 语句阿

学生的类型应该是个字符串的类型吧!

我也只能帮这么多了。


----------------解决方案--------------------------------------------------------
这系统则么搞的,我的帖子怎么到这里来了阿
----------------解决方案--------------------------------------------------------

第三个,解决方法有很多种,下面是其中一种

// test.cpp : Defines the entry point for the console application. //

#include <stdlib.h> #include "string.h"

int isnum(int n);

void main() { int i; for(i=11;i<256;i++) { if(isnum(i)==1) printf("%d\n",i); } getchar(); }

int isnum(int n) { long a; int i,j; char b[10]; char c[10];

//计算平方数 a=n*n;

//将平方数转成字符串 itoa(a,b,10);

//将字符串进行倒置 j=strlen(b)-1; for(i=0;i<=strlen(b);i++) c[j-i]=b[i]; c[j+1]='\0';

//判断倒置以后的字符串是否和原来的相等 //如果相等就是回文数,返回1;否则返回0 if(strcmp(b,c)==0) return 1; else return 0; }


----------------解决方案--------------------------------------------------------

第一题:

/*1.计算数列之和:n-n/2+n/3-n/4+…-n/100。*/ #include <stdio.h>

double Work();

void main() { int n; double result;

printf("input n:"); scanf("%d",&n);

result = n * Work(); printf("Result is %.5f\n",result); }

double Work() { int i = 0; double result = 0;

for ( result = 0,i = 1;i <= 100; i++) { result += 1 / (double)i * ( (i % 2 == 1) ? 1 : -1 ); } return result; }


----------------解决方案--------------------------------------------------------
多谢了................
----------------解决方案--------------------------------------------------------

第三题!!

/*3.若某数的平方具有对称性质,则该数称为回文数,如11的平方为121, 称11为回文数,请找出1~256中所有的回文数*/

#include <stdio.h>

int IsHWNumber(int);

void main() { int n;

printf("Input the Number:"); scanf("%d",&n);

if( IsHWNumber(n) == 1 ) { printf("the [%d] is HuiWenNumber!\n",n); } else { printf("the [%d] is not HuiWenNumber!\n",n); }

} int IsHWNumber(int n) { int result; int temp,m; int flag;

result = n * n; flag = 1; while ( flag ==1) { temp = result % 10; result /= 10; if (result == 0) { break; } for(;;) { m = result / temp; if ( m > 1 ) { temp *= 10; continue ; } else if ( m == 1 ) { result -= temp; break; } else { flag = 0; break; } } } return flag; }


----------------解决方案--------------------------------------------------------
  相关解决方案