Hàm nhập sai ở đâu?

#include<iostream>
#include<stdio.h>
#include<string.h>

using namespace std;
//khai baao ham
void nhap(char *a);//ham nhap vao xau ki tu
void giaTri(char *a);//ham tra ve gia tri sohex
//===chuong trinh chinh===
int main()
{
	//khai bao bien
	char soHex[9];
	
	//nhap vao du lieu
	nhap(soHex);	
	
	//dua ra gia tri
	giaTri(soHex);
	
	cout<<endl;
	return 0;
		
}
//dinh nghia ham
void nhap(char *a)
{
	printf("Nhap vao xau so Hex: ");
	scanf("%s",&a);
	
}
void giaTri(char *a)
{
	int n=0;
	int doDai=strlen(a);
	for(int i=0;i<doDai;i++)
	{
		if(a[i]>=49 && a[i]<=57)
			n=n*16+(a[i]-48);
		else if(a[i]>=65 && a[i]<=70)
			n=n*16+(a[i]-55);
	}
	printf("Gia tri cua so hex la: ");
	printf("%d",n);
}

scanf("%s",a)
Vì a là con trỏ nên đặt &a là sai rồi.

2 Likes

ok.em hiểu rồi.em cảm ơn ạ’

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?