با سلام خدمت همه دوستان
من دو تمرین از قسمت اشاره گرها و ساختمان ها داشتم . دوستان اگه میشه راهنماییم کنن خیلی ممنون میشم.
تمرین 1 :
تابعي بنويسيد که عدد صحيحي را دريافت کرده (در قالب عدد و نه رشته) و معادل متني آنرا برگرداند. عملکرد صحيح آنرا در يک برنامه نشان دهيد.
برنامه زیر عدد 3 رقمی را بصورت رشته ای میگیره و بصورت متنی چاپ میکنه ولی من برای اینکه بتونم عدد 4 رقمی صحیح رو بگیرم و چاپ کنم چکار باید بکنم :
تمرین 2 .
تابعي بنويسيد که زمان را در قالب يک ساختمان (structure) دريافت کرده (24 ساعتي) و معادل آنرا به صورت متن (12 ساعتي با تعيين روز/شب يا قبل از ظهر و بعد از ظهر) برگرداند.
از دوستان خواهش میکنم راهنماییم کنن
خیلی خیلی ممنونم
من دو تمرین از قسمت اشاره گرها و ساختمان ها داشتم . دوستان اگه میشه راهنماییم کنن خیلی ممنون میشم.
تمرین 1 :
تابعي بنويسيد که عدد صحيحي را دريافت کرده (در قالب عدد و نه رشته) و معادل متني آنرا برگرداند. عملکرد صحيح آنرا در يک برنامه نشان دهيد.
برنامه زیر عدد 3 رقمی را بصورت رشته ای میگیره و بصورت متنی چاپ میکنه ولی من برای اینکه بتونم عدد 4 رقمی صحیح رو بگیرم و چاپ کنم چکار باید بکنم :
کد:
#include <dos.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
void ascii2text(char* t, char* s);
int main(){
const int n=40;
char a, s[n+1]="", t[n+1]="";
int i, x, y;
gets(s);
ascii2text(s,t);
puts(t);
return(0);
}
void ascii2text(char* s, char* t){//s : ascii input string, t :output string
char *dig1[]={
"",
"one ",
"two ",
"three ",
"four ",
"five ",
"six ",
"seven ",
"eight ",
"nine "
};
char *dig21[]={
"eleven ",
"twelve ",
"thirteen ",
"fourteen ",
"fifteen ",
"sixteen ",
"seventeen ",
"eighteen ",
"nineteen "
};
char *dig2[]={
"",
"ten ",
"twenty ",
"thirty ",
"fourty ",
"fifty ",
"sixty ",
"seventy ",
"eighty ",
"ninety "
};
char hundred[]="hundred ";
char error[]="not suitable for more than 3 digits";
char z[10]="0000000";
int i=0,j=0,k=0;
while(s[k++]);
k=(3-(k-1)%3)%3;
while(z[k+j]=s[j])j++;
k=0;
j=0;
while(t[j++]=dig1[z[i]-48][k++]);
j--;
if(z[i]-48){
k=0;
while(t[j++]=hundred[k++]);
j--;
}
i++;
k=0;
if(z[i]-48==1 && z[i+1]-48!=0){
i++;
while(t[j++]=dig21[z[i]-48-1][k++]);
}
else{
while(t[j++]=dig2[z[i]-48][k++]);
j--;
i++;
k=0;
while(t[j++]=dig1[z[i]-48][k++]);
}
}
تمرین 2 .
تابعي بنويسيد که زمان را در قالب يک ساختمان (structure) دريافت کرده (24 ساعتي) و معادل آنرا به صورت متن (12 ساعتي با تعيين روز/شب يا قبل از ظهر و بعد از ظهر) برگرداند.
از دوستان خواهش میکنم راهنماییم کنن
خیلی خیلی ممنونم