/工资计算程序/
#include
main()
{
float
originwage;
/应发工资/
float
realwage;
/实发工资/
float
tax;
/所缴税款/
int
i,hour,amount,money;
printf("请选择工资种类:\n1计时工资\n2计件工资\n3固定月工资\n");
scanf("%d",&i);
switch(i)
{
case
1:{
printf("请输入工作时间(单位:小时)\n");
scanf("%d",&hour);
printf("请输入单位时间的薪水(单位:元)\n");
scanf("%f",&money);
originwage=moneyhour;
}
break;
case
2:{
printf("请输入生产产品数量(单位:件)\n");
scanf("%d",&amount);
printf("请输入生产一件产品的薪水(单位:元)\n");
scanf("%f",&money);
originwage=moneyamount;
}
break;
case
3:
printf("请输入你的固定工资\n");
scanf("%f",&originwage);
break;
default:printf("输入错误!\n");
return
0;
}
if(originwage<0)
{
printf("数据错误!\n");
return
0;
}
if(originwage<2000)
tax=0;
else
if(originwage>2000&&originwage<=2500)
tax=(originwage-2000)005;
else
if(originwage>2500&&originwage<=4000)
tax=(originwage-2500)01+500005;
else
tax=(originwage-4000)015+150001+500005;
printf("应发工资:
%f\n",originwage);
printf("所缴税款:
%f\n",tax);
printf("实发工资:
%f\n",originwage-tax);
return
0;
}
#include<stdioh>
void sort(float a, int n){
int i,j;
float t;
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
if (a[j]>a[i]) {t=a[i];a[i]=a[j];a[j]=t;};
}
void insert(float a,float x,int n)
{
int i,m;
if (x<=a[n-1]){a[n]=x;}
else if (x>=a[0]){
for (i=n;i>0; i--) a[i]=a[i-1]; a[0]=x;
} else {
for (i=0;i<n-1;i++) if (x<=a[i] && x>=a[i+1]){ m=i;break;};
for (i=n-1;i>m;i--) a[i+1]=a[i];a[m+1]=x;
};
}
int find(float a,float y,int n){
int flag= -99,i;
for (i=0;i<n;i++) if (a[i]==y){flag=i; break;};
return flag; //找到则返回下标号,没找到为负值
}
void save(float a, int n){
FILE fp;
int i;
fp=fopen("student_scoretxt","w");
for (i=0;i<n;i++) fprintf(fp,"%g\n",a[i]);
fclose(fp);
printf("saved in student_scoretxt\n");
}
int main() {
float s[101],x,y;
int i,n,fd;
printf("input n: "); scanf("%d",&n);
printf("\ninput %d scores: ",n);
for (i=0;i<n;i++) scanf("%f",&s[i]);
printf("\ninput one extra score x: ");
scanf("%f",&x);
sort(s,n);
insert(s,x,n);
printf("input score y which you want to find:\n");
scanf("%f",&y);
fd=find(s,y,n+1);
if ( fd< 0 ) printf("Not find\n"); else printf("find at %d\n",fd);
save(s,n+1);
//for (i=0;i<n+1;i++) printf("%g\n",s[i]);
return 0;
}
#include <stdlibh>
#include <stdioh>
typedef char datatype; /单链表的类型定义/
typedef struct node {
datatype data;
struct node next;
} linklist;
linklist creatlink() { /建立一个单链表,返回单链表的头指针/
char ch;
linklist p,head,r;
ch = getchar();
head = p = (linklist )malloc(sizeof(linklist));
r = head;
while(ch != '$') {
p->next = (linklist )malloc(sizeof(linklist));
p->next->data = ch;
p = p->next;
ch = getchar();
}
p->next = NULL;
return head;
}
void printList(linklist head) {/遍历单链表,并输出每个结点的数据/
linklist p = head->next;
printf("\t\t");
while(p) {
printf("%c ",p->data);
p = p->next;
}
printf("\n\n");
}
void insert(linklist p,datatype x) {/一个数值为x的新结点插入到p结点之后/
/请将函数体的代码补充完整/
linklist newnode = (linklist )malloc(sizeof(linklist));
newnode->data = x;
newnode->next = p->next;
p->next = newnode;
}
void deleteNode(linklist head,linklist p) {/删除头指针为head的单链表上的p结点/
/请将函数体的代码补充完整/
linklist q = head;
while(q->next != p && q) q = q->next;
if(q) {
q->next = p->next;
free(p);
}
else printf("没有找到指定的结点p, *** 作失败!!!\n");
}
linklist get(linklist head, int i) {/查找单链表中的第i个结点,并返回其地址/
linklist p = head;
int k = 0;
while(k < i && p) {
p = p->next;
k++;
}
return p;
}
void main() {/主函数/
linklist head,f;
head = creatlink();/建立一个单链表,head存储表头指针/
printList(head); /遍历输出该单链表/
f = get(head, 2); /查找单链表中的第2个结点,将其地址存储在变量f中/
if(f) printf("\nthis is 2 node:%c\n", f->data); /输出第2个结点的值/
/在第2个结点后面插入一个新结点,其值为’w’/
insert(head,'w');//这个函数的功能没有构思好,因为所给的参数的限制
printf("\n after insert a new node:");
printList(head); /遍历输出该单链表/
f= get(head,5);/查找单链表中的第5个结点,将其地址存储在变量f中/
if(f) printf("\nthis is 5 node:%c" ); /输出第5个结点的值/
/删除第5个结点/
deleteNode(head,f);
printf("\n after delete a node:");
printList(head); /遍历输出该单链表/
}
刚编了一个:把12枚银币编号,1,2,3,12,每次称重的时候,按照程序提示进行,输入称重结果,就可以了。
运行结果:
5、6、7、8
比
1、2、3、4:
(输入:0等,1轻,2重)2
3、4、6
比
1、2、5:
(输入0等,1轻,2重)1
5、4
比
11、12
(输入0:等,1轻,2重)2
假币5重
源程序:
#include
<stdioh>
void
badcoin(int
x,
int
a)
{
switch(a)
{
case
0:
printf("错误输入");
break;
case
1:
printf("假币%d轻",x);
break;
case
2:
printf("假币%d重",x);
break;
}
}
void
badcoin1(int
x)
{
int
a,
good;
for(good=1;
good==x;
good++){}
printf("%d是假币,
%d
比
%d
(输入:1轻,2重)",x,x,good);
scanf("%d",&a);
badcoin(x,a);
}
void
badcoins2(int
x,
int
y,
int
a)
{
int
b,
good;
for(good=1;
good==x
||
good==y;
good++){}
printf("%d,%d当中有一个假币",x,y);
switch(a)
{
case
1:
printf("(轻),其中
%d
比
%d
(输入0:等,1轻)",x,good);
break;
case
2:
printf("(重),其中
%d
比
%d
(输入0:等,2重)",x,good);
break;
}
scanf("%d",&b);
if(b==0
||
b==a)
{
switch(b)
{
case
0:
badcoin(y,a);
break;
case
1:
case
2:
badcoin(x,b);
break;
}
}
else
{
printf("输入错误\n");
}
}
void
badcoins3(int
x,
int
y,
int
z,
int
a)
{
/
z偏a,或者x和y当中一个偏非a
/
int
b;
printf("%d、%d
比
11、12
(输入0:等,1轻,2重)",z,y);
scanf("%d",&b);
if(b==0)
badcoin(x,a==12:1);
else
badcoin(b==az:y,b);
}
main()
{
int
a,b;
printf("5、6、7、8
比
1、2、3、4:
(输入:0等,1轻,2重)");
scanf("%d",&a);
if(a==0)
{
printf("9、10、11
比
1、2、3:
(输入0等,1轻,2重)");
scanf("%d",&a);
if(a==0)
{
badcoin1(12);
}
else
{
printf("10
比
9(输入0等,1轻,2重)");
scanf("%d",&b);
if(b==0)
badcoin(11,a);
else
badcoin(a==b10:9,a);
}
}
else
{
printf("3、4、6
比
1、2、5:
(输入0等,1轻,2重)");
scanf("%d",&b);
if(b==0)
{
badcoins2(7,8,a);
}
else
{
if(a==b)
badcoins3(1,2,6,a);
else
badcoins3(3,4,5,a);
}
}
}
C语言中,程序文件本身是文本格式,如果只是查看代码的话,可以这样做:打开记事本,使用文件中的“打开”菜单。在d出的对话框中选择文件类型为“所有文件”,然后再浏览到程序文件,点击打开。但是如果需要在编译器环境中进行调试或编译等 *** 作,则必须使用编译器,编译器必须使用与C语言文件在编写时使用的环境要求,不同的编译器提供的库函数不同,不能混用。
高效率:说到程序,运行效率是不可避免的话题。如何提高效率,一是 最准确的算法,二是 一些小的细节,打个比方:for(int i=;i<strGetLength();i++) 就这个循环的判定条件而言,完全可以改成int len=strGetLength(), for(int i=0;i<len;i++);不要小巧这个改懂,如果你的字符串str很长的话,也会影响效率的,因为每循环一次就要调用一次函数GetLength。
完全没看懂你是什么意思。是要求出1000以内的 完全数吗?
如果是为了实现这个目的,可以参考下面的程序
#include<stdioh>
void main()
{
int a,b,c;
for(a=2;a<=1000;a++)
{
c=0;
for(b=1;b<a;b++)
{
if(a%b==0)
{
c=c+b;
}
}
if(a==c)
{
printf("its factors is %d\n",a);
}
}
}
#include<stdioh>
#include<ctypeh>
//这里的数组标记方法极好,把寻找字母和寻找字母的分子量全给表示出来!注意精髓,是数组的顺序能派上大用场
double array[] = {0, 0, 1201, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 1401, 1600};
char s[20];
int main(void)
{
int i;
int length;
double sum = 0;
char x;
gets (s);
//若输入的是字符串,判断其长度可以不用strlen了,可用是否为'\0'
for (i = 0; s[i] != '\0'; ++i)
{
if (isalpha(s[i]))
{
//注意这里的技巧,把当前的那个字母保存下来,如果下一位或者下两位是数字好寻找是哪个字母的。
x = s[i];
sum += array[s[i] - 'A'];
}
else
{
int n = s[i] - '0';
if (isdigit(s[i + 1]))
{
n = n 10 + s[i + 1] - '0';
i++;
}
sum += array[x - 'A'] (n - 1);
}
}
printf("%3lf",sum);
return 0;
}
以上就是关于用C语言编写一个完整的程序,完成以下计算:全部的内容,包括:用C语言编写一个完整的程序,完成以下计算:、c语言程序、将c语言程序补充完整等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)